Mercurial - определить, где файл был удален? - PullRequest
21 голосов
/ 24 марта 2011

Если вы сделаете hg log myfile -v, вы увидите список наборов изменений, в которые был изменен файл.

В нашем случае, в самом последнем наборе изменений, файл был удален.Но вы не можете сказать это, посмотрев на подробный вывод (-v) hg log.Есть ли простая команда Mercurial, которую вы можете использовать, чтобы определить, был ли и когда файл удален из репозитория?


Обновление : обратите внимание, что это на клиенте Windows, имы используем Mercurial v 1.4.3

Обновление 2 . Похоже, что приведенные ниже ответы будут работать с более поздней версией Mercurial, однако обновления пока нет в картах.Любые другие идеи для v 1.4.3 ???

Ответы [ 3 ]

27 голосов
/ 24 марта 2011

Вы можете проверить, какая ревизия удалила файл (любые другие интересные функции), используя revsets:

hg log -r 'removes(<myfile>)'

Некоторые примеры:

hg log -r 'removes(build.xml)' //где build.xml находился в текущем каталоге

hg log -r 'removes("**/build.xml")' // где build.xml мог находиться в подкаталогах

Подробнее см. hg help revsets.

19 голосов
/ 24 марта 2011

Флаг --removed должен получить то, что вы ищете:

hg log myfile -v --removed

Из справки для hg log:

    --removed              include revisions where files were removed
3 голосов
/ 24 марта 2011

Это то, что я использую, чтобы перечислить все удаленные файлы в моем хранилище:

hg log --template "{rev}: {file_dels}\n" | grep -v ':\s*$'
...