如何在Mercurial中检查潜在的合并/ rebase冲突?

Mac*_*cke 12 mercurial

有没有一种简单的方法来检查合并/ rebase是否会产生文件冲突,而不实际执行合并/ rebase?

我希望能够决定是否:

  • 如果触摸的文件集(我和他们的)不同,则重新设置
  • 合并,如果我们一直在搞乱相同的文件.

由于错误的合并(由于人为错误以错误的方式解决冲突引起)更容易检测和反转,如果我做两个头的合并,而不是做了rebase.特别是如果我推动我的改变而后来意识到某些事情搞砸了.

(由于我们没有完全全面的测试套件,所以不可能事先检查所有内容.)

而且......我正在运行Windows.:)

Mac*_*cke 11

所以,在Martin的回答的帮助下,我想出了rebaseif扩展,它做了我想要的.

从本质上讲,它尝试使用内部合并工具进行rebase,如果失败(它可以解决任何冲突),它会中止并与用户的首选工具合并.

有关详细信息,请参阅https://bitbucket.org/marcusl/ml-hgext/src/tip/rebaseif.py.

更新

最近几个月,我又回到了合并,因为它本身就是安全的.由于依赖文件可能会影响更改,因此非冲突的rebase可能仍然存在问题.(即,rebase在合并之前丢失了代码的外观信息).

作为rebaseif的作者,我建议使用普通的旧合并代替.:)

  • ......作者不信任.:-) +1给Macke这样说.-1比那些对作者有更多信任的人. (2认同)