Comment créer une branche avec TortoiseHG

218

J'ai téléchargé TortoiseHg 1.0 pour évaluation. Pour la vie de moi, je ne sais pas comment créer une branche. Il semble comprendre les branches (par exemple dans son navigateur de référentiel) mais je n'arrive pas à trouver un moyen de créer une branche. Cela semble être une capacité si fondamentale, car parmi les avantages souvent vantés du DVC, il y a la ramification légère.

J'ai cherché sur Google et je n'ai pas trouvé beaucoup de discussions sur ce sujet (au moins pour les versions récentes), donc je dois supposer que je manque quelque chose, non?

Mise à jour: J'ai donc signalé la réponse de Chad Birch ci-dessous pour répondre au problème de la "nouvelle branche". Comme il le fait remarquer correctement, vous effectuez un commit, puis cliquez sur le bouton de branche pour faire apparaître la boîte de dialogue de maintenance de branche, où vous créez de nouvelles branches. J'aurais aimé qu'ils nous aient donné une option de menu contextuel pour cela. Une fois que vous avez créé une branche, la prochaine question naturelle est de savoir comment fusionner et ce n'est pas évident non plus. Il s'avère que cette option est enterrée dans l'explorateur de référentiel. Vous devez sélectionner le chef d'une autre branche, faites un clic droit puis sélectionnez "Fusionner avec ...".

Michael Tiller
la source
La ramification est sérieusement enfouie dans un aspect complètement peu intuitif du flux de travail. La ramification et la validation sont deux opérations très distinctes et il est inutile d'enterrer la ramification profondément dans l'interface utilisateur de validation. Comme je m'engage généralement avant de créer une branche, il ne m'est pas venu à l'esprit de regarder sous l'interface utilisateur de validation. La succursale n'est toujours pas documentée, même à la mi-2016 ; Chad Birch souligne ce qui passe pour la documentation de branchement; c'est toujours horrible, mais comme il le note, il n'est que le messager ...
arclight

Réponses:

213

Comme indiqué dans les documents , tout ce que vous devez faire est de simplement cliquer sur le branch: defaultbouton en haut de la boîte de dialogue de validation et de changer pour un nouveau nom de branche.

Chad Birch
la source
30
Ah, je vois où il est écrit "appuyer sur ce bouton ouvre une boîte de dialogue de maintenance de branche". Cela ouvre en effet une boîte de dialogue qui, en fin de compte, permet de créer des branches, mais je ne conteste pas la déclaration "comme indiqué dans les documents" car il n'y a aucune mention explicite de la façon de créer une branche n'importe où sur cette page qui Je pourrais trouver. Je me demande ce que la ramification a fait pour mériter un traitement de deuxième classe dans TortoiseHg (par rapport aux autres outils Tortoise * où il s'agit d'une option de menu contextuel de première classe). :-)
Michael Tiller
31
Oh, je n'essayais pas d'être insultant d'une manière "RTFM" ou quelque chose comme ça, j'avais juste besoin d'une sorte de phrase pour créer un lien vers la page pertinente. Peut-être que "comme vaguement impliqué dans les documents" aurait été plus approprié dans cette situation.
Chad Birch
1
Pas de transpiration. Je n'essayais pas non plus d'insulter. Je voulais juste dire clairement à quiconque est venu regarder ce lien que vous devez vraiment lire entre les lignes des documents pour obtenir la réponse car il n'est pas explicitement mentionné.
Michael Tiller
8
Avec les versions récentes de Mercurial, vous devez faire un hg push --new-branchpour pousser une nouvelle branche vers un référentiel distant. Voir stackoverflow.com/questions/2365483 pour savoir comment procéder dans TortoiseHg.
Peter Graham
26

Pour démarrer une nouvelle branche avec TortoiseHg, appuyez sur Valider ... puis, au-dessus du message de validation, appuyez sur Branche, puis sur "Ouvrir une nouvelle branche nommée:"

nme
la source
9

Je voulais juste ajouter que pour pousser une nouvelle branche vers un référentiel distant, il y a une case à cocher sur l'onglet Synchroniser sous Options de "Autoriser le push d'une nouvelle branche" - vous devez vous rappeler de la désactiver à nouveau juste après.

TamW
la source
8

La plupart du temps en mercurial, vous êtes clonele référentiel pour faire une branche.

Vous pouvez ensuite fusionner les référentiels séparés une fois que vous avez effectué vos modifications et validations.

Cela peut sembler occuper beaucoup d'espace disque, mais sur la plupart des systèmes d'exploitation, mercurial créera des liens physiques au lieu de copier les fichiers. Quoi qu'il en soit, l'espace disque est normalement bon marché, et parce qu'il est local, il est plutôt rapide.

Si vous y réfléchissez, chaque "extraction" (dans la terminologie svn) ou "clone" (dans la terminologie mercuriale) est vraiment une branche qui sera probablement fusionnée, il est donc très logique que les clones soient le moyen le plus courant de créer des branches.

blokeley
la source
11
Ce n'est pas pratique pour les branches de fonctionnalités.
Tour du
D'accord. Si vous avez des branches de longue durée (semi-permanentes), comme une branche stable de version 1 et une branche stable de version 2, vous voudrez utiliser des branches nommées . Voir aussi la documentation de la branche mercurial .
blokeley
11
-1. C'est au mieux un hack. Le clonage pour la ramification ne fonctionne pas du tout si vous suivez un référentiel distant, car vous ne pouvez pas pousser vos modifications locales. Cela signifie que vous ne pouvez pas partager votre branche avec d'autres développeurs avec lesquels vous travaillez. La bonne façon de créer une branche est de créer une branche nommée dans votre référentiel.
Peter Graham
8
Le clonage est toujours la façon dont le livre officiel de mercurial recommande les branches « globales » hgbook.red-bean.com/read/… Ne tirez pas sur le messager.
blokeley
0

Avant de valider, cliquez sur le bouton Branche (voir image), puis sélectionnez une branche ou créez-en une (en tapant à l'endroit où vous sélectionnez les branches).

Voir l'image ici

Felipe Dias
la source