2011-01-20 43 views
5

我有一箇中央Mercurial存儲庫,其中包含使用hgsubversion從SVN存儲庫克隆的歷史記錄。自從克隆了原始的hg repo以來,我已經向SVN存儲庫提交了額外的提交;這些目前在默認分支中。使用Mercurial,我如何從默認值更改爲命名分支?

我也有一個命名分支。我已經克隆了這個分支(使用hg clone -b mybranch)到我的本地系統。現在我想獲取僅在默認情況下存在的更改,並使其在我命名的分支中可用。我看到要做到這一點的顯而易見的方法是在回購上執行hg update mybranch,然後hg merge default並提交。這看起來很危險 - 如果我忘了在完成後更新回默認值,所有未來從SVN中取出的內容都會將更改導入mybranch

我還認爲,也許我不應該指定mybranch當我克隆回購,但克隆整個回購和剛剛更新到mybranch本地。因此,我可以將默認更改拖到本地克隆,並在那裏進行合併。

這裏有什麼正確的答案?在共享回購上做,只是要小心?克隆一切並在本地管理分支機構?還是有更簡單的解決方案,我錯過了?

+1

合併似乎是完美的,我真的沒有得到你的問題。 * hgsubversion *似乎知道SVN分支,所以當你拉動它時,它應該把* SVN-trunk *改變到你的*默認*和* SVN-mybranch *到你的* mybranch *分支中。如果您合併並留在* mybranch *上,* mybranch *的提示是否真的發生改變,如果遠程端只有幹線更改?拉應獨立於您的工作副本的修訂工作。 – 2011-01-20 21:48:52

+0

我的擔心是直接更改主存儲庫及其相關風險。當然,在DVCS的世界裏,所有的回購都基本平等,所以它可能只是我的客戶 - 服務器VCS的偏見。 – 2011-01-21 19:22:00

回答

6

通常在Mercurial中,無論何時我做了一些我認爲可能會導致問題的事情,我都會克隆回購並在此嘗試。然後,我可以選擇將這些更改推回或在真實存儲庫上執行操作。無論哪種方式,我有失敗的選擇,並沒有造成任何損害。 克隆可以扔掉,如果你搞砸了,你不必將它們留在身邊。

1

在共享庫中執行並小心。或者克隆整個共享庫,在那裏進行合併,然後推送到僅支持分支的克隆。

相關問題