我想查看mercurial存储库中同一文件的连续(不同)修订之间的差异序列。我明显可以通过解析hg log
的结果,提取变更集,然后一次读取这两行并在循环中发布hg diff -r $first_changset -r $second_changeset
来做到这一点。获取修订与mercurial之间的差异序列
但是 - 是否有一个更直接/优雅/图形方式实现相同?
注意:虽然没有注释 - 至少不是默认情况下。我希望能够看到集合在一起的同一个变更集的所有更改。
我想查看mercurial存储库中同一文件的连续(不同)修订之间的差异序列。我明显可以通过解析hg log
的结果,提取变更集,然后一次读取这两行并在循环中发布hg diff -r $first_changset -r $second_changeset
来做到这一点。获取修订与mercurial之间的差异序列
但是 - 是否有一个更直接/优雅/图形方式实现相同?
注意:虽然没有注释 - 至少不是默认情况下。我希望能够看到集合在一起的同一个变更集的所有更改。
做到这一点,最快捷的方法是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
用于显示由修订版制作的差异,但遗憾的是,当您有多个修订版时,该功能不起作用。
我可以为那些修改版本库中单个文件的版本做这项工作吗? – einpoklum
您可以使用revsets来仅包含影响该文件的修订版本,例如'reva:revb和文件(模式)'。 –