Comment faire pour supprimer 'hg' de Mercurial pour tous les fichiers manquants?

224

J'utilise ceci pour supprimer un fichier du dépôt:

hg remove <full file path> 

Quelle commande pouvez-vous utiliser pour effectuer une opération hg removesur tous les fichiers supprimés localement?

Par supprimé localement, je veux dire ceux qui apparaissent avec un !quand vous le faites hg status.

Pour les ajouts, vous pouvez simplement faire hg addpour ajouter tous les nouveaux fichiers (ceux préfixés par ?).

Marcus Leon
la source

Réponses:

364

Cela ajoutera tous les nouveaux fichiers qui ne sont pas ignorés et supprimera tous les fichiers localement manquants

hg addremove

L'un ou l'autre supprimera tous les fichiers localement manquants (il s'agit de la même commande)

hg remove --after
hg remove -A
mfperzel
la source
7
il y a aussi hg oublier qui est équivalent à hg rm -Af
jk.
37
le jk pour un nom d'utilisateur est menaçant, j'ai l'impression que chaque fois que je lis un de vos commentaires ou messages que vous dites "je plaisante" à la fin :( cela étant dit, cela a aidé, bravo!
Lester Peabody
6
un mot d'avertissement ... ne paniquez pas quand il jette tout un tas de merde à l'écran ... (comme je l'ai fait)
Richard B
1
Hou la la! Merci! Cela a beaucoup aidé! Hou la la! +1 :) hg rm -A
Cullub
32

Si vous avez l'intention de faire addremove et commit, il peut être joint avec l'option '-A' comme indiqué ici :

hg commit -A -m 'Commit with addremove'
tsenapathy
la source
5

La question d'origine demandait comment supprimer (c'est-à-dire oublier) les fichiers qui apparaissent comme "!"lors de l'utilisation hg st. Une approche directe qui a l'avantage de la transparence est d'utiliser hg stavec l' -noption:

hg -v forget $(hg st -nd)

(Bien sûr, les fichiers ne seront oubliés qu'au prochain commit .)

Les indicateurs sont bien documentés ailleurs (par exemple par la commande hg elle-même), mais en bref:

  • -n signifie "nom de fichier uniquement"
  • -d signifie "sélectionner les fichiers qui ont été supprimés"
de pointe
la source
Pouvez-vous expliquer chacun de ces drapeaux?
Cullub
1

Si vous souhaitez ajouter et supprimer, mais que vous n'êtes pas prêt à valider le reste de vos modifications, je pense que vous devez encore les énumérer:

$ 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
Dan Ross
la source