J'ai lu ce document: A Guide to Branching with Mercurial, en particulier la section intitulée Branching with Bookmarks.Mercurial, "Branchement avec des signets"
Il dit:
Maintenant, vous avez deux signets (essentiellement un tag) pour vos deux branches au courant changeset.
Pour passer à l'une de ces branches, vous pouvez utiliser
hg update feature
pour effectuer la mise à jour de l'ensemble de modifications de pointe de cette branche et vous identifier comme travaillant sur cette branche. Lorsque vous commettez, il déplace le signet vers le changeset nouvellement créé.
J'ai essayé ceci, mais cela a fini par déplacer les deux signets en même temps.
Ce guide est-il erroné, obsolète ou ai-je fait quelque chose de mal? Notez que je sais que le fait d'avoir des signets sur des branches séparées ne fait que déplacer le signet lié à la branche sur laquelle je travaille actuellement, mais ce guide (que beaucoup de gens disent être le guide définitif) indique spécifiquement le texte ci-dessus, qui indique qu'il aurait dû travailler en "disant" à Mercurial quel signet (branche) je travaille.
Les tests montrent cependant le contraire.
Des idées?
Exemple:
> hg init > echo 1 >test.txt > hg commit -m "initial" --addremove adding test.txt > hg bookmark main > hg bookmark feature > hg log changeset: 0:c56ceb49ee20 tag: feature tag: main tag: tip user: Lasse V. Karlsen <[email protected]> date: Tue Nov 30 23:06:16 2010 +0100 summary: initial > hg update feature 0 files updated, 0 files merged, 0 files removed, 0 files unresolved > echo 2 >test2.txt > hg commit -m "feature 1" --addremove adding test2.txt > hg log changeset: 1:9f2f5869b57b tag: feature <---- both were moved tag: main <---- tag: tip user: Lasse V. Karlsen <[email protected]> date: Tue Nov 30 23:06:45 2010 +0100 summary: feature 1 changeset: 0:c56ceb49ee20 user: Lasse V. Karlsen <[email protected]> date: Tue Nov 30 23:06:16 2010 +0100 summary: initial
Peut-être que c'était le comportement par défaut à un moment donné, et a été changé? De toute façon, vous avez raison, avec cette configuration, il se comporte exactement comme le guide décrit. Merci! –
Non, l'option 'track.current' a toujours par défaut False. Il y a eu une discussion récente au sujet de faire de la commande bookmark une commande de base et par rapport à cela, il a été suggéré que 'track.current' devrait commencer par défaut à True. –
+1 pour la réponse utile, mais cela conduit à une question évidente: quand track.current * n'est * pas approprié? Je ne peux pas imaginer une situation où j'ai plusieurs signets et je les veux * tous * aller de l'avant sur un commit. –