我正在考虑从SVN切换到Hg,目前有一个典型的SVN布局用于项目Foo:
Foo
trunk
branches
1.0
1.1
我可以使用hg import
命令将此结构导入Hg,为主干和两个分支创建单独的存储库(使用--config convert.hg.clonebranches=1
导入开关。)
现在,如果客户在Foo的v1.0中发现错误,我该如何将此修复程序应用于1.1和主干存储库?它们是旧SVN分支的单独副本,因此hg merge
不起作用吗?
如果我从头开始在Hg开始一个新项目,那么我可以使用不同版本的标签,并轻松地将更改从一个标签合并到另一个标签,但从SVN导入时我没有这种奢侈...或者有我错过了什么?
答案 0 :(得分:1)
我喜欢hg transplant
(transplant extension homepage):这将采取提交并将其移动到某处。使用-s选项可以将其从一个仓库移动到另一个仓库。
您还可以指定要进行的合并,单个修订,多个修订,或者让它启动“交互式变更集选择器”(无论这意味着什么)。 (虽然我没有尝试过repos之间的合并选项...但我知道指定一个变更集效果很好!)
答案 1 :(得分:1)
您应该能够使用正常的推/拉合并来回来获取更改。转换足够智能,1.0和1.1的相同部分将是相同的变更集。因此,在1.0中进行更改,您应该能够将其拉入1.1和main并完全合并。
如果你认为你将从1.1和main转到1.0,只需hg update
到你知道的变更集<1.0> 之前进行更改,你将成为能够干净地拉动并合并1.0中的那个。