当我使用Git几年后回到Mercurial时我感到很惊讶,当我做了hg pull -u
时:Mercurial获取了新补丁,没有发生冲突合并,但仍然要求提交。
当hg pull -u
没有造成任何冲突时,有没有办法自动提交?
目前,revlog受到许多“Merge ...”提交消息的污染,我真的更愿意看不到它们(尽管合并本身应保留在历史记录中,以防自动化过程做出错误决定)
答案 0 :(得分:2)
不,我不这么认为。这是git和hg之间的根本区别。 Mercurial希望您在提交之前确保合并是正确的,可能是通过运行测试套件。
如果你不喜欢合并提交,也许你应该重新定位你的工作而不是合并?通常通过重新定义要素分支而不是合并来保持历史线性。
如果您要进行大量调整,如果您通过将WIP工作推送到非发布存储库来使用阶段系统,那么一旦代码通过审核并被接受,它就会被重新定位,然后被推送到发布存储库。您可能还会发现evolve扩展非常有用,特别是如果您与团队协作,因为这将在开发人员之间传播历史编辑操作。
答案 1 :(得分:0)
您可以使用别名:
alias hg_pull='hg pull -u && hg commit -m "No Merge Conflict"'
从你的回购中运行hg_pull应该或多或少地做你想要的。 如果在“hg pull -u”步骤出现任何问题,则不会触发提交。
如果有什么不清楚,请告诉我!