2011-09-27 53 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