2017-07-19 34 views
0

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

但是 - 是否有一个更直接/优雅/图形方式实现相同?

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

回答

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用于显示由修订版制作的差异,但遗憾的是,当您有多个修订版时,该功能不起作用。

+0

我可以为那些修改版本库中单个文件的版本做这项工作吗? – einpoklum

+1

您可以使用revsets来仅包含影响该文件的修订版本,例如'reva:revb和文件(模式)'。 –

相关问题