我有2个Mercurial存储库 RepoA 和 RepoB ,2个人一直在他们的每个回购单独工作,RepoA只有一个分支(默认)但9提交,RepoB有2个分支,Default和Experiment1,每个分支有大约30个提交。现在事实证明,RepoB是RepoA的一个子集,即RepoB中的很多东西都可以放入RepoA。我想把RepoB的所有内容拉(导入)到RepoA中的一个分支。我不希望导入转到RepoA的默认分支,而是RepoA中的命名分支,称为 Developer1WIP 。我特别需要知道
我相信带有分支图的HgConvert扩展是一个很好的前进方式。 “分支图是一个文件,允许您在从任何外部存储库引入分支时重命名分支。”....
,
答案 0 :(得分:3)
Mercurial wiki中记录了所有内容,这里摘录自ConvertExtension page:
...
- branchmap
自v1.3起
分支图是一个允许您重命名分支的文件 从任何外部存储库引入。用于 与splicemap结合,它允许强大的组合 帮助修复即使是最糟糕的管理不善的存储库并转换它们 进入结构良好的Mercurial存储库。分支图包含 形式的行
original_branch_name new_branch_name
“original_branch_name”是 源存储库中分支的名称,“new_branch_name”是 分支的名称是目标存储库。这可以使用 将一个存储库中的代码从“默认”移动到命名分支。
请记住,“default”标识Mercurial的默认分支 存储库,默认情况下不显示日志,磁头或 父母的命令。要擦除命名分支标记,请将其转换为 带有分支图的“默认”,如
original_branch_name default
修订仍然存在,但没有 更长的附加到原始命名分支。
...
所以基本上你会创建一个包含它的文本文件:
default Developer1WIP
Experiment1 Developer1WIP
(转换后你想要同一个分支上的默认值和Experiment1吗?你的问题有点不清楚,但我以为你做了。)
然后发出convert命令:
hg convert ORIGINAL_REPO CONVERTED_REPO --branchmap MAP.TXT