175 votes

Mercurial - Comment supprimer tous les changements locaux, y compris les fichiers sans version?

Je me déplace d'un processus de génération d'utiliser mercurial et que vous souhaitez obtenir le répertoire de travail de retour à l'état de la dernière révision. Plus hâtives du processus de création ont modifié certains fichiers et ajouté quelques fichiers que je ne veux pas commettre, alors j'ai changements locaux et les fichiers qui ne sont pas ajoutés au référentiel.

Quelle est la meilleure façon de jeter de tout cela et d'obtenir un répertoire de travail est propre qu'a la dernière révision?

Actuellement, je fais ceci:

hg revert --all
<build command here to delete the contents of the working directory, except the .hg folder.>
hg pull
hg update -r MY_BRANCH

mais il semble qu'il devrait y avoir un moyen plus simple.

Je veux faire l'équivalent de la suppression de la mise en pension, de faire une nouvelle clone, et une mise à jour. Mais l'opération est trop gros pour que ce soit assez rapide.

225voto

Lasse V. Karlsen Points 148037

Ces mesures devraient pouvoir être raccourcie pour:

hg pull
hg update -r MY_BRANCH -C

L' -C drapeau indique la commande de mise à jour pour annuler toutes les modifications locales avant la mise à jour.

Toutefois, cela pourrait encore laisser sans traces des fichiers dans votre référentiel. Il semble que vous voulez vous débarrasser de ceux aussi bien, donc, je voudrais utiliser l' purge extension de:

hg pull
hg update -r MY_BRANCH -C
hg purge

En tout cas, il n'existe pas une seule commande, vous pouvez demander Mercurial effectuer qui va faire tout ce que vous voulez, sauf si vous modifiez le processus de "full clone" de la méthode que vous dites que vous ne pouvez pas le faire.

122voto

zerkms Points 105994
 hg up -C
 

Cela supprimera toutes les modifications et mettra à jour la dernière tête de la branche actuelle.

et activer l' extension de purge pour pouvoir supprimer tous les fichiers sans version.

12voto

KCD Points 1566

Pour supprimer non suivi sur * nix sans l'extension de purge, vous pouvez utiliser

 hg pull
hg update -r MY_BRANCH -C
hg status -un|xargs rm
 

Qui utilise

update -r --rev révision REV

update -C --clean rejette les modifications non validées (pas de sauvegarde)

status -u --unknown ne montre que les fichiers inconnus (non suivis)

status -n --no-status cache le préfixe d'état

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X