2010-08-30 5 views
1

Quand j'ai commencé mon projet Mercurial j'oublié de exclure tout sous mon répertoire target/classes, tels que:Comment supprimer tous les fichiers de classe Java de l'ensemble de mon historique de projet dans Mercurial?

target/classes/com/mypackage/MyClass.class 

Maintenant ces fichiers binaires sont à l'origine des conflits quand je fais un hg update.

Y at-il une seule commande qui me permettrait de supprimer tous ces fichiers de l'historique du projet entier?

Ou, sinon, existe-t-il une commande qui me permettrait de les supprimer un fichier à la fois?

Répondre

3

Si vous voulez simplement supprimer des fichiers de la dernière révision, retirez les fichiers du disque et utilisez hg addremove ou hg remove --after target/classes/com/mypackage/*.class pour informer Mercurial de votre suppression.

Si vous souhaitez supprimer définitivement tous les fichiers de classe de votre historique, utilisez l'option hg convert et --filemap pour réécrire votre référentiel et supprimer les fichiers de toutes les révisions. Cependant, cette solution modifie les ID de révision. Dans un environnement multi-utilisateur, cela peut causer des problèmes car il crée un nouveau référentiel de manière efficace.

3

Si vous supprimez les fichiers en question, faites hg addremove puis les fichiers seront supprimés du référentiel. Cependant, ils seront toujours dans l'histoire, mais est-ce vraiment un problème?

2

Utilisez hg remove --after target/classes/com/mypackage/*.class. (--after évite de supprimer les fichiers sur disque).