Mercurial队列:从多个存储库中合并补丁
-
10-10-2019 - |
题
我在存储库上使用汞队列,并将这些补丁放在补丁存储库中。另一个贡献者克隆了我的补丁队,并进行了更改。我现在想将它们的更改合并到我的本地补丁存储库中。
我试图找到一个良好的工作流程,以执行这种合并
- 反映了补丁存储库历史上的贡献者的更改
- 在发生冲突的情况下调用用户的合并工具
最初,我只是试图直接合并补丁。在非常简单的情况下,这是可以的,但是当许多事情发生变化时,效果不佳,因为补丁取决于行号上下文,这似乎不必担心调整自己。总体而言,我发现检查了三种斑点的三种差分太复杂。
有没有更好的办法?
解决方案
没有很好的方法来处理这一点。我可能最终要做的是创建两个克隆,然后 qfinish
将您的补丁添加成一个,另一个贡献者补丁。这一点您将在应用每个单独的补丁的净效果的情况下都有回购。然后你 hg pull
其中一个克隆进入另一个, hg merge
将让您使用图形工具合并补丁的结果 - 唯一的区别应该是补丁的差异。在这一点上,理想情况下,您将能够 qimport
合并更改,但您不能这样做,因此您必须“ HG diff -r tip-1-r tip”才能获得新的差异,这是所有事先启动之前的差异,两名。然后,您将“ Qimport”差异并将其提交给您的补丁队列回购,并说出它来自何处。
绝对是最佳的,但我能想到的最好。我很想听听更好的解决方案。
其他提示
恐怕没有自动化的方法合并补丁。
但是,您可以使用的一个“技巧”是创建新的补丁,而不是在需要修改现有补丁程序时编辑/刷新现有补丁。当你们都同意正确的做事方式时, hg qfold
补丁。
这样,由于创建新的补丁以来,您就不会彼此脚趾踏上脚趾。
不隶属于 StackOverflow