Как сделать Mercurial "HG remove" для всех отсутствующих файлов?

Я использую это, чтобы удалить файл из репозитория:

hg remove <full file path> 

какую команду вы можете использовать для выполнения hg remove on все файлы, которые были удалены локально?

удаленным локально, я имею в виду тех, кто появляется с ! когда вы hg status.

для добавления, вы можете просто сделать hg add добавить все новые файлы (с префиксом ?).

4 ответов


это добавит все новые файлы, которые не игнорируются, и удалите все локально отсутствующие файлы

hg addremove

любой из них удалит все локально отсутствующие файлы (это одна и та же команда)

hg remove --after
hg remove -A

Если вы намерены сделать addremove и commit, его можно объединить с опцией'- A', как показано здесь:

hg commit -A -m 'Commit with addremove'

исходный вопрос спросил, Как удалить (т. е. забыть) файлы, которые отображаются как "!" при использовании hg st. Прямой подход, который имеет преимущество прозрачности, заключается в использовании hg st С :

hg -v forget $(hg st -nd)

(конечно, файлы будут забыты на следующий commit.)

флаги хорошо документированы в другом месте (например, самой командой hg), но вкратце:

  • -n означает " имя файла только"
  • -d означает "выбрать файлы, которые были удалены"

Если вы хотите addremove и commit, но не готовы зафиксировать остальные ваши изменения, я думаю, вам все равно придется их перечислить:

$ hg st
M modified-file
A added-file
R removed-file-1
R removed-file-2

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-*
abort: removed-file-*: No such file or directory

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-1 removed-file-2
committed changeset 185:628800a7af84