使用mercurial获取修订版之间的一系列差异

时间:2017-07-19 00:17:27

标签: automation mercurial

我想在mercurial存储库中看到同一文件的连续(非相同)修订版之间的一系列差异。我显然可以通过解析hg log的结果,提取变更集,然后一次读取这两行并在循环中发出hg diff -r $first_changset -r $second_changeset来做到这一点。

但是 - 是否有更直接/优雅/图形化的方法来实现同样的目标?

注意:虽然没有注释 - 至少不是默认情况下的注释。我希望能够看到同一变更集的所有变化聚集在一起。

1 个答案:

答案 0 :(得分:1)

最快的方法是使用hg export,例如:

hg export -r reva:revb

这实际上会为您提供可导入的补丁,但额外的元信息通常很有帮助。

具有最可配置输出的最通用解决方案是带有模板的hg log,例如:

hg log -r reva:revb -T '{diff()}\n'

diff()模板函数使用可选参数来指定包含和排除模式。有关详细信息,请参阅hg help templates

请注意,这也适用于-G,并会在差异旁边绘制一个依赖关系图。即使图形是线性的,这也有助于找到差异的开始和结束。显然,您还可以向模板添加更多信息,例如版本号,哈希,提交消息和作者。

通常情况下,hg diff -c用于显示由修订版创建的差异,但遗憾的是,当您进行多次修订时,这不会起作用。