Mercurial
您如何處理 Mercurial 中的預設分支?
我們有一個包含兩個命名分支的儲存庫:
dev
和production
. 還有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 中有一個dev
andprod
分支,那麼一個新的複製將根據最後一次送出的位置簽出一個“隨機”變更集。這比教人們default
“預設情況下應該工作的正常分支”更令人困惑。