34 votes

Récupérer l'ancienne version d'un fichier sans modifier le parent de la copie de travail

Comment obtenir une copie d'une version antérieure d'un fichier Mercurial-même, sans la nouvelle valeur par défaut de la copie de travail du fichier dans votre espace de travail?

J'ai trouvé l' hg revert commande et je pense que c'est ce que je veux, mais je ne suis pas sûr.

J'ai besoin d'obtenir une copie d'une version antérieure de mon code pour travailler avec pendant quelques minutes. Mais je ne veux pas déranger la version actuelle qui fonctionne bien.

Alors que j'allais pour ce faire:

hg revert -r 10 myfile.pls

Est-il un moyen de sortie vers un répertoire différent, donc mon travail en cours de la version du fichier n'est pas dérangé? Quelque chose comme:

hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls

52voto

Martin Geisler Points 44779

Le chat de commande peut être utilisé pour récupérer toute révision d'un fichier:

$ hg cat -r 10 myfile.pls

Vous pouvez rediriger la sortie vers un autre fichier avec

$ hg cat -r 10 myfile.pls > old.pls

ou en utilisant l' --output drapeau. Si vous avez besoin de faire cela pour plusieurs fichiers, puis prendre un coup d'oeil à l' archive de commande, qui peut le faire pour l'ensemble d'un projet, par exemple,

$ hg archive -r 10 ../revision-10

Cela crée le dossier revision-10 qui contient un instantané de votre dépôt car il a regardé dans la révision 10.

Cependant, la plupart du temps, vous devriez utiliser la commande de mise à jour pour passer à la caisse une révision antérieure. La mise à jour est la commande à utiliser pour la copie de travail jusqu'à la date après le pull, mais la commande peut également être utilisée pour faire de votre copie de travail obsolètes en cas de besoin. Donc

$ hg update -r 10   # go back
(look at your files, test, etc...)
$ hg update         # go back to the tip

9voto

Omnifarious Points 25666

La commande que vous utilisez est la suivante:

 hg cat -r 10 myfile.pls > C:\temp\dump\myfile_revision10.pls
 

Connaître un peu d'Unix aide avec les commandes Mercurial. Peut-être que cat devrait avoir un alias intégré print ou quelque chose de similaire.

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