Como fazer o 'hg remove' do Mercurial para todos os arquivos ausentes?


224

Eu uso isso para remover um arquivo do repositório:

hg remove <full file path> 

Que comando você pode usar para executar um hg removeem todos os arquivos que foram excluídos localmente?

Por excluídos localmente, quero dizer aqueles que aparecem !quando você o faz hg status.

Para adições, basta hg addadicionar todos os novos arquivos (os prefixados ?).

Respostas:


364

Isso adicionará todos os novos arquivos que não são ignorados e remove todos os arquivos ausentes localmente

hg addremove

Qualquer um deles removerá todos os arquivos ausentes localmente (são o mesmo comando)

hg remove --after
hg remove -A

7
também há hg forget, que é equivalente a hg rm -Af
jk.

37
o jk um nome de usuário é ameaçador, eu sinto como evertime eu li um dos seus comentários ou mensagens que você está dizendo "apenas brincando" no final :( que foi dito, isso ajudou, aplausos!
Lester Peabody

6
Uma palavra de aviso ... não freak out quando se despeja um monte de porcaria para a tela ... (como eu fiz)
Richard B

1
Uau! Obrigado! Isso ajudou muito! Uau! 1 :) hg rm -A
Cullub 18/01/16

32

Se você pretende fazer addremove e commit, ele pode ser associado à opção '-A', como mostrado aqui :

hg commit -A -m 'Commit with addremove'

5

A pergunta original perguntou como remover (por exemplo, esquecer) os arquivos que aparecem como "!"quando se usa hg st. Uma abordagem direta que tem a vantagem da transparência é usar hg stcom a -nopção:

hg -v forget $(hg st -nd)

(É claro que os arquivos serão esquecidos no próximo commit .)

Os sinalizadores estão bem documentados em outros lugares (por exemplo, pelo próprio comando hg), mas em resumo:

  • -n significa "apenas nome do arquivo"
  • -d significa "selecionar arquivos que foram excluídos"

Você pode explicar cada uma dessas bandeiras?
Cullub

1

Se você deseja adicionar e remover e confirmar, mas não está pronto para confirmar o restante de suas alterações, acho que você ainda precisa enumerá-las:

$ 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.