使用 mercurial 获取修订之间的一系列差异
Getting a sequence of diffs between revisions with mercurial
我想查看 Mercurial 存储库中同一文件的连续(非相同)修订之间的一系列差异。我显然可以通过解析 hg log
的结果,提取变更集,然后一次读取这两行并在循环中发出 hg diff -r $first_changset -r $second_changeset
来做到这一点。
但是 - 是否有更多 straightforward/elegant/graphical 方法来实现同样的目标?
注意:虽然不注释 - 至少不是默认情况下所做的。我希望能够看到同一变更集中的所有变更。
最快的方法是使用 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
用于显示 由 修订的差异,但不幸的是,当您有多个修订时,这不起作用。
我想查看 Mercurial 存储库中同一文件的连续(非相同)修订之间的一系列差异。我显然可以通过解析 hg log
的结果,提取变更集,然后一次读取这两行并在循环中发出 hg diff -r $first_changset -r $second_changeset
来做到这一点。
但是 - 是否有更多 straightforward/elegant/graphical 方法来实现同样的目标?
注意:虽然不注释 - 至少不是默认情况下所做的。我希望能够看到同一变更集中的所有变更。
最快的方法是使用 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
用于显示 由 修订的差异,但不幸的是,当您有多个修订时,这不起作用。