到目前为止,"hg rebase"如何对待你?你有没有发现任何错误或陷阱?在什么情况下它取代或补充mq?
Rebase在简单的情况下是非常好的(没有或很少有合并冲突),但是如果你有很多它们,那么与常规的merge + commit相比,它的价值会更加麻烦:
Rebase会更改您的提交并更改历史记录,默认情况下会删除您的原始提交.如果它们在一个糟糕的时刻打到你身上,这有很多暗示:
无法看到你如何解决冲突.(即你的原始提交和rebase之间的差异,除非你选择保留它们并在推送之前手动剥离它们)
无法测试每个重新定位的修订版合并确定,编译并在提交之前运行正常.你改变,你的提交改变.(与上述相同)
如果你真的在做分布式的东西并从许多来源分享/拉动,你必须非常小心,不要分享任何你想要改变的提交.
另外,如果在上面的场景中你意外地重新绑定然后从某人那里提取这些pre-rebase-commit,你会得到一组双重提交,需要"hg strip"掉一组.(我这里没试过合并.)
问题是rebase编辑历史.这是SVN在'更新'上做的事情.所以,它肯定是你可以使用的东西,但是如果你有许多未完成的提交并且期望很多冲突,我推荐合并.