2010-05-05 45 views
8

我喜歡在Mercurial中創建命名分支以處理可能需要一段時間才能編碼的功能,所以當我按下時,我會執行hg push -r default以確保我只將更改推送到默認分支。但是,每次執行推送或發出命令時都必須記住-r default是一件痛苦的事情。如何更改默認分支以推入mercurial?

所以,我想加入這個配置來解決這個問題我的〜/ .hgrc:

[defaults] 
push = push -r default 
outgoing = outgoing -r default 

的問題是,這些配置線並不是真正的違約,他們是別名。他們按預期工作,直到我嘗試執行hg push -r <some revision>。而我設置的「默認」只是抹去了我傳入的修訂版(我看到defaults are deprecated,但別名具有相同的問題)。

我試過四處尋找,但我找不到任何可以讓我設置默認分支來推動並允許我在必要時覆蓋它的任何東西。任何人都知道我可以做的其他事情?

ps:我意識到我可以爲每個分支分開克隆,但我寧願不這樣做。很難切換目錄,特別是當你有共享配置或編輯工作區時。

回答

5

我不認爲你可以用純粹的水銀做到這一點,因爲它只有一個克隆,只有那個分支(我剛纔建議,直到你說它不是你的那杯茶)。如果它真的殺了你,你可以創建一個像一個小包裝腳本:

#!/bin/sh 
HG=/full/path/to/hg # executable 
if echo $* | grep -P -q -- 'push.*\s-r($|\s)' ; then 
    $HG $* 
else 
    $HG $* -r default 
fi 

將其命名爲「汞」,並把它早些時候在你的路徑。

+0

我不得不修改一些腳本,使其不加「-r默認」比推傳出其他命令,但非常感謝您在正確的方向推。 – timmfin 2010-05-10 17:56:28

1

您是否正在使用Tortoise HG?完全恢復到明確的分支名稱將導致Tortoise HG在後續提交過程中記住您正在處理的分支。我不確定它從中收集到什麼元數據。

hg up -r {branchname} 

例如,

hg up -r dev 
相關問題