这里我们的情况:
我们的 Mercurial 存储库中有两个分支,我们称它们为分支 A 和分支 B。
在分支 A 中修改的所有内容都已 merge 到分支 B。
但是现在我们发现分支 B 中的代码与分支 A 中的代码有几个不同之处。
我们在分支 A 中进行了一些大的代码更改,在分支 B 中 merge 这些更改将是一个真正的痛苦,实际上我们希望对解决方案进行替代实现。
但是稍后我们还希望继续在分支 A 上进行更改,并且仍然能够将这些稍后的小更改 merge 到分支 B 中。
所以问题是:
merge 到分支 B 时是否可以跳过分支 A 中的某些单个变更集,然后再次将 A 中的变更集 merge 到 B 中? (可能使用纯 Hg 解决方案,没有变通方法,使用备份副本等等......)
这里概述了我们将达到的目标:
变更集分支 A 变更集分支 B
Chgset A.1 Chgset B.1(与 A.1 merge )
设置 A.2
Chgset B.2(**未与 A.2 merge **)
Chgset A.3 Chgset B.3(与 A.3 merge 但不与 A.2 merge )
提前感谢您的任何建议
最佳答案
这就是 transplant
的确切目的。延期。transplant
扩展(其他 DVCS 中的 cherry-pick )跟踪复制更改集时来自何处的内容,因此 merge 更容易。
您必须先激活扩展程序(它已包含但默认禁用)。在您的 hgrc
文件,添加:
[extensions]
transplant=
关于Mercurial:关于在分支之间 merge 时如何跳过某些变更集的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018228/