使用Hg转换扩展,分支图选项

时间:2011-09-27 10:26:22

标签: version-control mercurial tortoisehg

我有2个Mercurial存储库 RepoA RepoB ,2个人一直在他们的每个回购单独工作,RepoA只有一个分支(默认)但9提交,RepoB有2个分支,Default和Experiment1,每个分支有大约30个提交。现在事实证明,RepoB是RepoA的一个子集,即RepoB中的很多东西都可以放入RepoA。我想把RepoB的所有内容拉(导入)到RepoA中的一个分支。我不希望导入转到RepoA的默认分支,而是RepoA中的命名分支,称为 Developer1WIP 。我特别需要知道

  1. 如何在RepoA中创建命名分支(Developer1WIP)并将所有RepoB导入RepoA上的Developer1WIP分支
  2. 我相信带有分支图的HgConvert扩展是一个很好的前进方式。 “分支图是一个文件,允许您在从任何外部存储库引入分支时重命名分支。”....

    1. 这个档案是什么?
    2. 在哪里创建&应该包括什么?
    3. 我是否可以获得一些确切如何在Windows中使用此命令的示例?

1 个答案:

答案 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