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

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

hg remove <full file path> 

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

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

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

Ответ 1

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

hg addremove

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

hg remove --after
hg remove -A

Ответ 2

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

hg commit -A -m 'Commit with addremove'

Ответ 3

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

hg -v forget $(hg st -nd)

(Конечно, файлы будут забыты только при следующей фиксации.)

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

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

Ответ 4

Если вы хотите 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