Создание списка файлов, измененных между версиями hg

Я хочу создать список файлов, которые были изменены между двумя версиями в заданном каталоге в Mercurial.

В частности, меня не интересует, что изменилось, но какие файлы были изменены в этом каталоге.

Например, предположив, что между then и otherthen изменены только 2 файла:

>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>

Какова гипотетическая команда? Я пробовал diff и log, но я не вижу, как убедить их в этом: либо я получаю патч (diff), либо получаю весь репо (журнал).

Ответ 1

hg status --rev x:y

где x и y являются желательными номерами ревизий (или именами тегов или ветвей).

Если вы используете терминал в Windows, добавьте hg status --rev x:y > your-file.txt, чтобы сохранить список в файл.

Ответ 2

статус - это то, что вам нужно.

Но, в зависимости от того, что вы подразумеваете под "между двумя ревизиями", вы также можете использовать диапазон " x:: y" (DAG - Directed Acyclic Graph).

При наличии параллельных наборов изменений

1--2---4 \---3

hg status --rev 1:4 вернется (1,2,3,4), то есть что-либо между конечными точками и включая их, в соответствии с местным, числовым оборотом. Это может (и, скорее всего, будет) возвращать разные результаты в других - хотя и связанных - репозиториях!

hg status --rev 1::4 вернется (1,2,4), то есть конечных точек и всех наборов изменений, которые являются потомками "1" и предками "4".

Последний случай, x:: y, обычно более полезен в реальных приложениях. Это то, что вы получаете через TortoiseHg\Visual Diff.


> hg help revsets:

"х:: у"   Диапазон DAG, что означает все изменения, которые являются потомками x и   предков y, включая сами x и y. Если первая конечная точка   влево, это эквивалентно "предкам (y)", если второе осталось   это эквивалентно "потомкам (x)".