【发布时间】:2010-05-03 19:58:09
【问题描述】:
有没有办法用 mercurial 获取两次提交的更改? 第二次提交不是直接在第一次之后,它们之间还有一些其他的。
我试过了
hg diff [some params] --change xxxxx --change yyyyy > file.patch
但这仅包括最后一个变更集。
如果没有办法用 hg 实现这一点,是否有组合补丁的工具?
【问题讨论】:
有没有办法用 mercurial 获取两次提交的更改? 第二次提交不是直接在第一次之后,它们之间还有一些其他的。
我试过了
hg diff [some params] --change xxxxx --change yyyyy > file.patch
但这仅包括最后一个变更集。
如果没有办法用 hg 实现这一点,是否有组合补丁的工具?
【问题讨论】:
我在试图弄清楚这件事时来到了这个页面。我通过hg help diff 找到了我的解决方案。
hg diff -r <rev> -r <rev> 满足我的需要(两个标签之间的差异)
【讨论】:
--only-files-in-revs 标志在代码库很大时对此很有用,它可以强制hg 只查看在修订版中修改的文件 (hg diff -r <rev> -r <rev> --only-files-in-revs)。
extdiff 扩展将允许您使用您喜欢的外部差异工具。就我而言,我每天都使用 meld 运行这种类型的命令
hg meld -r <rev1> -r <rev2>
首先在扩展部分启用 extdiff 扩展(我也启用了搁置和记录)
[extensions]
shelve =
record =
hgext.extdiff =
然后添加此部分...
[extdiff]
cmd = meld
cmd.meld = /usr/bin/meld
到您的 .hgrc 文件。显然将 meld 替换为用于启动首选工具的命令
【讨论】:
[extensions] extdiff = [extdiff] cmd.extdiff = meld
出口?每个变更集一个补丁文件,类似于
hg export --output %r.patch --rev A --rev B
【讨论】: