我有一个汞储存库,在那里我在7-8个月前创建了一个分支。现在,这个分支是我进行大部分开发的分支,在默认分支和其他分支中,我没有任何成果。
我想要创建一个只代表这个分支的新存储库。也就是说,我想将这个分支移动到一个具有历史的新存储库中。
我尝试用以下语法使用HG转换工具:
hg convert --filemap ~filemap.txt --branchmap branchmap.txt --source-type hg --dest-type hg "E:\MyStuff\Dev\MyOldRepo" "E:\NewRepo"文件地图我已经定义了我想要包含的所有文件。在分支地图文件中我定义了
MyOldNamedBranch default转换工具确实将MyOldNamedBranch重命名为默认,但是它也带来了来自我不需要的其他分支的变更集。
我还尝试在设置文件时设置以下内容,但没有结果:
[convert]
hg.usebranchnames=0
hg.startrev=5262请建议我如何将分支移动到具有历史记录的新存储库,并将其他分支抛在后面。
发布于 2014-03-22 11:39:32
我只设置了开始修改编号,它起作用了。
hg convert --config convert.hg.startrev=5262 --branchmap branchmap.txt "E:\MyStuff\Dev\MyOldRepo" "E:\NewRepo"它就像一种魅力。
发布于 2014-03-22 11:21:21
尝试如下:只克隆所需的分支:
hg clone E:\MyStuff\Dev\MyOldRepo -b MyOldNamedBranch .\NewRepo然后在NewRepo内部,将所有更改集转换为草案阶段:
hg phase -r 0 -d -f然后更新MyOldBranch的专利(我假设父级在默认分支中)
hg update -r "parents(min(branch(MyOldBranch)))"然后将MyOldBranch重新基于完全相同的变更集。
hg rebase -s "min(branch(MyOldBranch))" -d .对其他的分支也做同样的事情。
老实说,我不确定这是否是最好的方法,但它对我有效。
https://stackoverflow.com/questions/22567593
复制相似问题