Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Automation 使用mercurial获得修订之间的差异序列_Automation_Mercurial - Fatal编程技术网

Automation 使用mercurial获得修订之间的差异序列

Automation 使用mercurial获得修订之间的差异序列,automation,mercurial,Automation,Mercurial,我希望看到mercurial存储库中同一文件的连续(不相同)版本之间的差异序列。显然,我可以通过解析hglog的结果,提取变更集,然后一次读取这两行,并在循环中发出hg diff-r$first\u changset-r$second\u变更集来实现这一点 但是-有没有更直接/优雅/图形化的方法实现同样的效果 注意:虽然没有注释,但至少不是默认情况下的注释。我希望能够看到同一变更集的所有变更集中在一起。最快的方法是使用hg export,例如: hg export -r reva:revb 这

我希望看到mercurial存储库中同一文件的连续(不相同)版本之间的差异序列。显然,我可以通过解析
hglog
的结果,提取变更集,然后一次读取这两行,并在循环中发出
hg diff-r$first\u changset-r$second\u变更集来实现这一点

但是-有没有更直接/优雅/图形化的方法实现同样的效果


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

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

hg export -r reva:revb
这实际上会给你一个重要的补丁,但是额外的元信息通常是有用的

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

hg log -r reva:revb -T '{diff()}\n'
diff()
模板函数采用可选参数来指定包含和排除模式。有关详细信息,请参见hg帮助模板

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


正常情况下,
hg diff-c
用于显示修订版产生的差异,但不幸的是,当您有多个修订版时,这不起作用。

我是否可以仅对那些更改存储库中单个文件的修订版起作用?您可以使用修订集仅包括影响该文件的修订版,例如,
reva:revb和文件(模式)