Я хочу создать список файлов, которые были изменены между двумя ревизиями в заданном каталоге в Mercurial.
В частности, меня не интересует, что изменилось, а какие файлы были изменены в этом каталоге.
Например, предположим, что между then
и otherthen
изменились только 2 файла:
>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>
Что за гипотетическая команда? Я пробовал diff и log, но не вижу, как убедить их сделать это: либо я получаю патч (diff), либо получаю все репо (log).
version-control
mercurial
Пол Натан
источник
источник
hg status --rev x:y .
hg status --rev .^
-n
, то естьhg status --rev x:y -n
hg status --change .
перечисляет измененные файлы.
- в том же списке,hg status --rev .^
но болеестатус - это то, что вам нужно.
Но в зависимости от того, что вы подразумеваете под «между двумя ревизиями», вы также можете рассмотреть возможность использования диапазона « x :: y » (DAG - Directed Acyclic Graph).
Учитывая параллельные наборы изменений,
1--2---4 \---3
hg status --rev 1:4
вернет (1,2,3,4), т. е. все, что находится между конечными точками и включая их, в соответствии с локальным числовым значением rev . Это может (и, скорее всего, будет) возвращать разные результаты в других, хотя и связанных, репозиториях!hg status --rev 1::4
вернет (1,2,4), то есть конечные точки и все ревизии, которые являются потомками «1» И предками «4».Последний случай, x :: y, обычно более полезен в реальных приложениях. Это то, что вы получаете через TortoiseHg \ Visual Diff.
> hg help revsets:
источник
hg status --rev x::y
».