web-dev-qa-db-fra.com

Comment puis-je "passer" avec Mercurial

Comment faire ce que svn switch fait dans Mercurial?

Est-ce que changer mon répertoire de travail pour passer à une autre branche du référentiel?

62
Jonas Meyer
hg update -r<REV>

La commande update basculera sur une révision spécifiée.

61
Flavius Stef

La commande switch fait deux choses dans Subversion:

  1. Mettez à jour la copie de travail pour mettre en miroir une nouvelle URL dans le référentiel . Ce comportement est similaire à 'svn update' et constitue le chemin à suivre pour déplacez une copie de travail vers une branche ou une balise du même référentiel.

  2. Réécrivez les métadonnées de l'URL de la copie de travail afin de refléter un changement syntaxique uniquement . Ceci est utilisé lorsque l'URL racine du référentiel change (telle qu'un schéma Ou un 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.

La commande hg update foo correspond le mieux à l'ancienne si vous passez de, par exemple, /trunk à /branches/foo dans Subversion.

Si vous voulez faire le dernier, éditez simplement .hg/hgrc. Vous trouverez une section [paths] qui ressemble à ceci:

 [chemins] 
 default = http://example.net/something

et vous pouvez changer cette URL push/pull par défaut en quelque chose d'autre à votre convenance. Vous pouvez également ajouter d'autres entrées à cette section si vous devez souvent pousser/extraire depuis d'autres emplacements. Si vous souhaitez extraire d'un emplacement mais appuyer sur un autre, ajoutez une entrée default-Push.

33
Martin Geisler

Si vous souhaitez changer de branche, procédez comme suit:

Tout d’abord, vérifiez quelles branches sont disponibles, tapez hg branches. Cela listera toutes les branches disponibles.

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

Enfin, pour changer de branche ( et effacer toutes les modifications locales ), tapez hg update -C name-of-branch. Cela vous basculera vers le nom de la branche que vous avez spécifié.

Vérifiez en tapant à nouveau hg branch.

23
Danmar

Pour basculer vers un "conseil" de branche distante:

hg pull -u <remote_branch>

Pour la branche locale (déjà à jour), il suffit de:

hg update -r <local_branch>
1
Krystian

Réponse alternative, dans le cas où "branche", vous voulez dire "un autre clone de la pension qui vit à un emplacement arbitraire sur le net": vous ne pouvez pas.

En d'autres termes, étant donné un repo sur hg.a.com et un clone de ce repo hg.b.com, il n'y a pas de commande comme

hg switch hg.b.com .

(en utilisant svn parlance ici, en supposant que votre répertoire actuel est la racine 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), puis extraire de hg.b.com pour détecter les modifications supplémentaires qui pourraient y vivre.

0
Tim Keating