mercurial:如何在合并期间挑选樱桃

时间:2011-12-02 12:37:11

标签: mercurial merge

考虑我有以下情况:

我有一个来自修订版4的分支br_foo。之后,在默认分支上还有3个更改:6,7和8.我只想将更改7和8合并到br_foo。有没有办法在mercurial中实现这个目标?

2 个答案:

答案 0 :(得分:11)

移植物移植

根据您使用的Mercurial版本,您可能会使用Mercurial 2.x中的新Graft功能或早期版本的Mercurial中较旧的Transplant Extension


移植命令

这是最近宣布的(2011年11月)所以我自己没有机会与它一起工作。

  

此命令使用Mercurial的合并逻辑来复制单个更改   来自其他分支,而不在历史图表中合并分支。   这有时被称为“backporting”或“cherry-picking”。通过   默认情况下,移植将从源复制用户,日期和说明   的变更。


移植扩展

我已经将它用于这种情况。描述中的一小段......

  

此扩展允许您从另一个分支或移植补丁   库中。

     

它在移植的变更集中记录原始变更集ID,   并避免移植以前移植的补​​丁。

     

它还可以用于根据上游更改来修改分支   (包括删除上游采用的变更集)   重写变更集并精心设计一些变更集。

答案 1 :(得分:2)

自mercurial 2.0(2011年11月1日发布)以来,这是由新的核心命令graft处理的:

  

此命令使用Mercurial的合并逻辑从其他分支复制单个更改,而不在历史记录图中合并分支。这有时被称为“backporting”或“cherry-picking”。

另见this other question