Mercurial - 同时区分多个变更集?

时间:2011-03-25 16:53:08

标签: mercurial diff

我们使用差异:

  • hg diff -c <xyz>:显示给定变更集的差异
  • hg diff -r <xyz>:显示自给定变更集以来的所有差异

但是,假设您有4-5-6-7-8的变更集,其中变更集4,6,8与系统的某个特定区域相关,并且在一个差异中,您希望看到从这些变更集中获得的变更你会怎么做?如果在变更集4和8中修改了文件A,则差异将显示变更集3和8之间的差异。

1 个答案:

答案 0 :(得分:9)

如果变更集4,5,6,7,8在历史记录中是线性的,我认为即使使用revsets,您也可以仅使用-r来执行此操作。但是,如果5和7中的更改确实来自系统的其他部分,则可以通过添加-X-I来获得所需的输出。像这样:

hg diff -r 3::8 -X part/you/do/not/want/**

hg diff -r 3::8 -I part/you/do/want/**

如果您在历史记录中尽可能早地让变更集更加准确,那么您将拥有这样的拓扑:

[3]---[4]---[6]---[8]---[9]
  \                     /
   ------[5]---[7]------

然后你会得到你想要的东西:

hg diff -r 3::8

(注意双冒号告诉范围遵循拓扑而不仅仅是数值范围)