Mercurial - определить, где файл был удален?
Если вы делаете hg log myfile -v
вы видите список изменений, в которых был изменен файл.
В нашем случае в самой последней ревизии файл был удален. Но вы не можете сказать это, посмотрев на подробный вывод (-v) hg log. Есть ли простая команда Mercurial, которую вы можете использовать, чтобы определить, был ли и когда файл удален из хранилища?
Обновление: обратите внимание, что это на клиенте Windows, и мы используем Mercurial v 1.4.3
Обновление 2. Похоже, что приведенные ниже ответы будут работать с более поздней версией Mercurial, однако обновления пока нет в картах. Любые другие идеи для v 1.4.3???
3 ответа
Вы можете проверить, какая ревизия удалила файл (любые другие интересные функции), используя 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
для деталей.
--removed
Флаг должен получить то, что вы ищете:
hg log myfile -v --removed
Из помощи для hg log
:
--removed include revisions where files were removed
Это то, что я использую, чтобы перечислить все удаленные файлы в моем хранилище:
hg log --template "{rev}: {file_dels}\n" | grep -v ':\s*$'