62 votes

Comment "basculer" avec Mercurial ?

Comment je fais ce que svn switch fait, dans Mercurial ?

C'est-à-dire changer mon répertoire de travail pour passer à une autre branche du référentiel ?

64voto

Flavius Stef Points 7400
hg update -r<REV>

El mise à jour permet de passer à une révision spécifiée.

33voto

Martin Geisler Points 44779

La commande switch fait deux choses dans Subversion :

  1. Mettez à jour la copie de travail pour refléter une nouvelle URL dans le référentiel. Ce comportement est similaire à celui de ' svn update ', et c'est le moyen de déplacer une copie de travail vers une branche ou une étiquette dans le même référentiel.

  2. Réécrire les métadonnées de l'URL de la copie de travail pour refléter un changement syntaxique uniquement. Ceci est utilisé lorsque l'URL racine du référentiel change (comme un changement de schéma ou de nom d'hôte) mais que votre copie de travail reflète toujours la même URL. ou un changement de nom d'hôte) mais que votre copie de travail reflète toujours le même répertoire dans le même référentiel.

El hg update foo correspond le plus à la première si vous passez de, disons, /trunk a /branches/foo dans Subversion.

Si vous voulez faire la dernière chose, alors il suffit d'éditer .hg/hgrc . Vous trouverez un [paths] qui ressemble à ceci :

\[paths\]
default = http://example.net/something

et vous pouvez changer cette URL par défaut de type push/pull en quelque chose d'autre comme vous le souhaitez. Vous pouvez également ajouter d'autres entrées à cette section si vous avez souvent besoin de pousser/tirer à partir d'autres emplacements. Si vous voulez extraire des données d'un emplacement, mais les pousser vers un autre, ajoutez une entrée de type default-push entrée.

23voto

Danmar Points 191

Si vous voulez changer de branche, faites ce qui suit :

Vérifiez d'abord quelles branches sont disponibles, tapez hg branches . Cela donnera la liste de toutes les branches disponibles.

Ensuite, déterminez la branche sur laquelle vous travaillez actuellement, tapez hg branch . Vous saurez ainsi quelle est votre branche actuelle.

Enfin, pour commuter une branche ( et effacer toutes les modifications locales ), type hg update -C name-of-branch . Cela vous fera passer au nom de la branche que vous avez spécifié.

Vérifiez en tapant hg branch encore.

1voto

Krystian Points 11

Pour passer à une branche distante, appuyez sur "tip" :

hg pull -u <remote_branch>

Pour la branche locale (déjà à jour) juste :

hg update -r <local_branch>

0voto

Tim Keating Points 2942

Autre réponse, au cas où par "branche" vous entendez "un autre clone du dépôt qui vit dans un endroit arbitraire sur le net" : vous ne pouvez pas.

En d'autres termes, étant donné un dépôt à hg.a.com, et un clone de ce dépôt à hg.b.com, il n'existe pas de commande telle que

hg switch hg.b.com .

(en utilisant le langage svn ici, en supposant que votre répertoire actuel est le Root d'un clone de hg.a.com).

Cependant, vous pouvez cloner hg.a.com, cloner localement ce clone (ce qui devrait être relativement peu coûteux), et ensuite tirer de hg.b.com pour récupérer toutes les modifications supplémentaires qui pourraient s'y trouver.

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