阅读Mercurial,似乎总是分支并合并完整的存储库。
是否可以将一些文件从一个分支合并到另一个分支? (例如,我可能只希望合并修复给定错误的文件。)
同样我可以选择一些更改集,但仍然有一个正确的合并记录,所以如果我完成合并后来完成它是正确的吗?
我来自一种强大的“心态”,所以可能会以错误的方式思考这个问题。
答案 0 :(得分:8)
是的,Mercurial总是分支并合并整个树。您没有perforce
之类的“灵活性”可以为合并选择单个文件。这是一件好事(相信我)。变更集是原子的(你不能拆分它们)和不可变的(你不能改变它们)。因此,这需要一点心态变化。
变更集应针对一项任务,仅针对一项任务。如果您正在修复错误,除了错误修复之外,更改集中没有任何其他内容。然后你有一个变更集来记录这个bug修复,你没有想要拆分它的问题。想要没有意义。错误修复的一半通常比没有错误修复更糟糕。
当谈到合并时,有几个选择:
graft
(new in 2.0)和较早的transplant
扩展程序发挥作用的地方。它们允许您从另一个分支“挑选”一个或一系列变更集,并将它们放在另一个分支上。答案 1 :(得分:3)
阅读Mercurial,似乎总是分支和合并 完整的存储库。
是
是否可以将一些文件从一个分支合并到另一个分支? (例如,我可能只希望合并修复给定错误的文件。)
只需触摸所需变更集中的“某些文件”,并将此变更集合并分支到另一个分支或移植到任何时间
同样我可以选择一些更改集,但仍然有一个正确的合并记录,所以如果我完成合并后来完成它是正确的吗?
是的,你可以移植|任何更改集到另一个分支,将记住应用状态,并且最终合并时不会重复更改