web-dev-qa-db-fra.com

Comment faire le "hg remove" de Mercurial pour tous les fichiers manquants?

J'utilise ceci pour supprimer un fichier du référentiel:

hg remove <full file path> 

Quelle commande pouvez-vous utiliser pour faire un hg remove sur tous fichiers supprimés localement?

Par supprimé localement, j'entends ceux qui se présentent avec un ! quand tu fais hg status.

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

222
Marcus Leon

Cela va ajouter tous les nouveaux fichiers qui ne sont pas ignorés et supprimer tous les fichiers manquants localement

hg addremove

L'un ou l'autre supprimera tous les fichiers manquants localement (c'est la même commande)

hg remove --after
hg remove -A
360
mfperzel

Si vous avez l'intention de faire addremove et commit, vous pouvez le joindre à l'option '-A' comme indiqué ici :

hg commit -A -m 'Commit with addremove'
32
tsenapathy

La question initiale demandait comment supprimer (c’est-à-dire oublier) les fichiers qui apparaissent sous la forme "!" lorsque vous utilisez hg st. Une approche directe qui présente l'avantage de la transparence consiste à utiliser hg st avec le -n option:

hg -v forget $(hg st -nd)

(Bien sûr, les fichiers ne seront oubliés qu'à la prochaine commit.)

Les drapeaux 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élection des fichiers supprimés"
5
peak

Si vous souhaitez ajouter et supprimer des modifications, mais que vous n'êtes pas prêt à appliquer le reste de vos modifications, je pense que vous devez toujours 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
1
Dan Ross