Mercurial:创建两个提交的差异

Der*_*hen 33 diff mercurial

有没有办法用mercurial获取两个提交的更改?第二个提交不是直接在第一个提交之后,它们之间还有一些其他提交.

我试过了

hg diff [some params] --change xxxxx --change yyyyy > file.patch
Run Code Online (Sandbox Code Playgroud)

但那只包括最后一个变更集.

如果用hg无法实现这一点,是否可能有一个组合补丁的工具?

小智 54

我试图弄清楚这件事情时遇到了这个页面.我找到了我的解决方案hg help diff.

hg diff -r <rev> -r <rev> 为我的需要工作(两个标签之间的差异)

  • 您可以在任何两个版本之间进行区分,不需要对它们进行标记. (3认同)
  • 当代码库很大时,我发现 `--only-files-in-revs` 标志对此很有用,以强制 `hg` 只查看在修订中修改的文件(`hg diff -r &lt;rev&gt; -r &lt; rev&gt; --only-files-in-revs`)。 (2认同)

Chr*_*ley 6

外部差异

extdiff扩展允许您使用首选的外部差异工具.在我的情况下,我每天使用meld运行这种类型的命令

hg meld -r <rev1> -r <rev2>

首先在扩展部分启用extdiff扩展(我也启用了搁置和记录)

[extensions]
shelve =
record =
hgext.extdiff =
Run Code Online (Sandbox Code Playgroud)

然后添加此部分......

[extdiff]
cmd = meld
cmd.meld = /usr/bin/meld
Run Code Online (Sandbox Code Playgroud)

到你的.hgrc文件.显然用用于启动首选工具的命令替换meld

  • 我想我们应该首先启用extdiff扩展,所以整个.hgrc是`[extensions] extdiff = [extdiff] cmd.extdiff = meld` (2认同)