2011-09-27 67 views
2

我有2個水銀庫RepoARepoB,2人已經在他們的每一個回購協議的工作independenlty,RepoA只有一個分支(默認值),但9條, RepoB有2個分支,Default和Experiment1,每個分支都有大約30個提交。現在事實證明,RepoB是RepoA的子集,即很多RepoB中的內容都可以放入RepoA中。我想將RepoB的所有內容拉入(導入)RepoA中的一個分支。我不希望導入到RepoA的Default分支,而是在RepoA中的一個命名分支,名爲Developer1WIP。我特別需要知道使用汞轉換擴展,Branchmap選項

  1. 我怎樣才能在RepoA創建一個名爲分支(Developer1WIP)和導入所有RepoB進入Developer1WIP分公司上RepoA

相信HgConvert擴展與分支地圖一個很好的前進方向。 「的branchmap是一個文件,就可以重命名時,被從任何外部存儲庫帶來了進去。一個分支」 ....

  1. 這是什麼文件?
  2. 它在哪裏被創造&它應該在哪裏?
  3. 我可以得到一些如何在Windows中使用此命令的示例嗎?

回答

3

一切都在水銀維基記載,這裏是從ConvertExtension page的摘錄:

...

--branchmap

自V1.3

branchmap是一個文件tha t允許您在從任何外部存儲庫引入 時重命名分支。當 與splicemap結合使用時,它允許與 幫助修復強大的組合,即使是最糟糕的管理不當的存儲庫,也可以將它們轉換爲結構良好的Mercurial存儲庫。所述branchmap包含 線的形式的

original_branch_name new_branch_name 

「original_branch_name」是在源存儲庫中的分支的 名,「new_branch_name」是 分支的名稱是目標資源庫。這可以用 將一個存儲庫中的代碼從「默認」移動到一個命名分支。

請記住,「默認」標識Mercurial 存儲庫的默認分支,默認情況下,日誌,磁頭或 父母命令不會顯示默認分支。要刪除一個名爲分支的標記,其與branchmap轉換爲 「默認」像

original_branch_name default 

的修訂將仍然存在,但沒有 再連接到原命名的分支。

...

所以基本上你會創建一個包含文本文件這樣的:

default Developer1WIP 
Experiment1 Developer1WIP 

(你要默認和Experiment1在同一分支上轉換後您的問題?有點不清楚,但我認爲你做到了。)

然後發出轉換命令:

hg convert ORIGINAL_REPO CONVERTED_REPO --branchmap MAP.TXT 
+0

感謝您的回覆。我確實閱讀過文檔,但不清楚究竟在哪裏。你的例子很清楚。非常感謝 – user595985