2009-04-02 7 views
2

Je suis un développeur unique utilisant Mercurial pour créer un programme. Je me suis jusqu'ici engagé à chaque étape du développement, et j'ai tout chamboulé et je veux travailler sur autre chose.Branche du passé dans mercurial

Comment est-ce que je devrais passer à un état précédent (c.-à-rollback) et puis créer une branche, maintenant les nouveaux états?

La restauration supprime-t-elle quelque chose? Est-ce que c'est tout ce que je fais? Juste annuler jusqu'à ce que je sois à l'endroit où je veux, éditer, puis commettre? Serai-je capable de fusionner les changesets plus tard, ou au moins de les regarder? Bien sûr, je peux juste sauvegarder ce dépôt, revenir en arrière, puis créer de nouveaux changesets, puis fusionner les deux dépôts.

Je suis nouveau SCM et de DSCM de cours, alors soyez gentil :)

Répondre

10

Vous ne voulez pas utiliser hg rollback, qui efface seulement exactement un changement (la plus récente). Voir You Can Only Roll Back Once dans le livre hg.

Pour faire une branche d'une révision antérieure, vous devez trouver le numéro de révision que vous souhaitez créer une branche à partir et exécuter:

hg clone -r <revnum> <source repository> <destination repository> 

Vous pouvez alors faire vos modifications dans le référentiel nouvellement clonée (qui ne contient pas l'historique qui vient après le numéro de révision que vous avez spécifié) et fusionne ces modifications dans l'original plus tard, si vous le souhaitez.