我想在mercurial存储库中看到同一文件的连续(非相同)修订版之间的一系列差异。我显然可以通过解析hg log
的结果,提取变更集,然后一次读取这两行并在循环中发出hg diff -r $first_changset -r $second_changeset
来做到这一点。
但是 - 是否有更直接/优雅/图形化的方法来实现同样的目标?
注意:虽然没有注释 - 至少不是默认情况下的注释。我希望能够看到同一变更集的所有变化聚集在一起。
答案 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
用于显示由修订版创建的差异,但遗憾的是,当您进行多次修订时,这不会起作用。