Ответ 1
hg status --rev x:y
где x
и y
являются желательными номерами ревизий (или именами тегов или ветвей).
Если вы используете терминал в Windows, добавьте hg status --rev x:y
> your-file.txt
, чтобы сохранить список в файл.
Я хочу создать список файлов, которые были изменены между двумя версиями в заданном каталоге в Mercurial.
В частности, меня не интересует, что изменилось, но какие файлы были изменены в этом каталоге.
Например, предположив, что между then
и otherthen
изменены только 2 файла:
>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>
Какова гипотетическая команда? Я пробовал diff и log, но я не вижу, как убедить их в этом: либо я получаю патч (diff), либо получаю весь репо (журнал).
hg status --rev x:y
где x
и y
являются желательными номерами ревизий (или именами тегов или ветвей).
Если вы используете терминал в Windows, добавьте hg status --rev x:y
> your-file.txt
, чтобы сохранить список в файл.
статус - это то, что вам нужно.
Но, в зависимости от того, что вы подразумеваете под "между двумя ревизиями", вы также можете использовать диапазон " 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)".