Personnellement, je n'aime aucune des réponses publiées jusqu'à présent:
- Je n'aime pas le branchement de clones parce que j'aime que chaque projet n'ait qu'un seul répertoire. Travailler sur différents répertoires en même temps gâche complètement l'historique des fichiers récents de mes éditeurs. Je finis toujours par changer le mauvais fichier. Alors je ne fais plus ça.
- J'utilise
shelve
pour des correctifs rapides (juste pour déplacer mes modifications non validées vers une autre branche, si je me rends compte que je suis dans la mauvaise). Vous parlez de jours, pas question de mettre quelque chose de côté pendant des jours.
- Je pense que
mq
c'est trop compliqué pour une situation aussi ordinaire
Je pense que le meilleur moyen est simplement de valider vos modifications, puis de revenir à l'ensemble de modifications avant de commencer ces modifications et de travailler à partir de là. Il y a quelques problèmes mineurs, permettez-moi d'illustrer:
Supposons que vous ayez l'ensemble de modifications A. Ensuite, vous commencez vos modifications. À ce stade, vous voulez le mettre de côté pendant un certain temps. Tout d'abord, engagez votre travail:
hg ci -m "Working on new stuff"
Si vous le souhaitez, vous pouvez ajouter un signet pour vous permettre de revenir plus tard. Je crée toujours des signets vers mes succursales anonymes.
hg bookmark new-stuff
Revenir au changeset avant ces modifications
hg update A
À partir de là, vous travaillez et générez le changeset C. Maintenant que vous avez 2 têtes (B et C), vous serez averti lorsque vous essayez de pousser. Vous ne pouvez pousser qu'une seule branche en spécifiant la tête de cette branche:
hg push -r C
Ou vous pouvez changer la phase de la new-stuff
branche en secret. Les modifications secrètes ne seront pas transmises.
hg phase -r new-stuff --secret --force