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 ?).

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

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'

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"

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.