Mercurial - разный набор изменений? - PullRequest
10 голосов
/ 25 марта 2011

Для сравнения мы используем:

  • hg diff -c <xyz>: Показать различия для данного набора изменений
  • hg diff -r <xyz>: Показать все различия после данного набора изменений

Но, допустим, у вас есть наборы изменений 4-5-6-7-8, где наборы изменений 4, 6, 8 были связаны с определенной областью системы, и в одном из различий вы хотели увидеть изменения, внесенные ТОЛЬКО в эти три набора измененийКак бы вы это сделали?Если файл A был изменен в наборах изменений 4 и 8, разница будет отображать разницу между набором изменений 3 и 8.

1 Ответ

9 голосов
/ 25 марта 2011

Если наборы изменений 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

(обратите внимание на двойное двоеточие, которое указывает диапазон для следования топологии, а не только числовой диапазон)

...