Mercurial

您如何處理 Mercurial 中的預設分支?

  • July 4, 2014

我們有一個包含兩個命名分支的儲存庫:devproduction. 還有default我們沒有使用的分支。不幸的是,每當人們複製儲存庫時,它會自動將它們放在 上default,我們遇到了問題,因為人們會無意中送出給它。

有沒有辦法刪除default分支,或禁用它,或設置 Mercurial 以便複製將自動在dev分支上啟動?

mercurial 文件有一些預送出掛鉤的範例,具有諷刺意味的是,其中一個正在檢查分支名稱。在範例中,它會檢查以確保它與正則表達式匹配。您可以對其進行調整以確保名稱不是“預設”。

這可能不會阻止複製從“預設”分支開始,但至少有了這個鉤子,沒有人可以將任何程式碼放入“預設”分支。

這個答案已經過時了:您現在可以添加@書籤,Mercurial 2.4 及更高版本將自動檢查它是否有新的複製。但是,您的使用者必須小心將@書籤指向他們想要的分支頭。


你不能讓另一個分支成為default分支,我的意思是你不能告訴 Mercurial 你想branch-X在一個新的複製中籤出。您應該始終default將分支設為使用者想要簽出的分支。這在 wiki 中有描述

人們有時會嘗試刪除default分支。這可以通過不首先創建一個來完成:

$ hg init repo
$ cd repo
$ hg branch dev
$ hg commit -m "Ha, no default branch!"

當沒有default分支存在時,hg clone將檢查最尖端的變更集。這是一個壞主意,因為每次將某些內容推送到儲存庫時,此變更集都會更改。因此,如果您在 repo 中有一個devandprod分支,那麼一個新的複製將根據最後一次送出的位置簽出一個“隨機”變更集。這比教人們default“預設情況下應該工作的正常分支”更令人困惑。

引用自:https://serverfault.com/questions/189844