分支之间的Mercurial合并变更集会带来所有祖先变更集



我在合并分支之间的更改时遇到问题。

我有默认的分支default

当我开始在新问题下工作时,我从default制作新的分支,如#565,并与之合作。工作后,我将代码更改从#565合并到default -它工作得很好。

我也有分支anotherbranch -这就像生产分支,我们可以合并一些东西,如果它是在default上测试的。

有时我需要将代码更改从#565合并到anotherbranch。当我尝试这样做时,Mercurial给我合并#565和anotherbranch之间的所有代码更改(因为#565是default的子代码)。

如何合并代码更改#565?

有人建议使用graft命令,这可能就是您最终要使用的命令,但是让我退一步说,如果您稍微改进一下流程,这个问题就会消失。

一般来说,如果你在anotherbranch分支的新分支中修复了错误,并在default分支中添加了新功能,你将拥有两个世界的最佳效果。修复你的"生产"分支的错误,然后立即将该生产分支(称为anotherbranch)合并回default

这是通常的过程,这确保了错误修复无处不在,但新功能在经过良好的测试之前不会进入生产环境。

我认为您需要的是graft命令("将更改从其他分支复制到当前分支")。

解决这个问题的最好方法是,正如Ry4an建议的那样,修改您的工作流程。您可能还需要考虑使用mq扩展来创建补丁。补丁是一个很好的方法,只应用某些更改到存储库,特别是如果你还没有准备好完全合并。

最新更新