Как сделать Mercurial 'hg remove' для всех отсутствующих файлов? - PullRequest
220 голосов
/ 09 марта 2010

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

hg remove <full file path> 

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

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

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

Ответы [ 4 ]

358 голосов
/ 09 марта 2010

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

hg addremove

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

hg remove --after
hg remove -A
32 голосов
/ 21 марта 2012

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

hg commit -A -m 'Commit with addremove'
5 голосов
/ 16 сентября 2015

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

hg -v forget $(hg st -nd)

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

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

  • -n означает «только имя файла»
  • -d означает «выбрать файлы, которые были удалены»
1 голос
/ 08 сентября 2015

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

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...