Est-il possible de rouvrir une succursale fermée dans Mercurial?

132

Je comprends qu'il est possible de fermer une branche nommée dans Mercurial, afin qu'elle n'apparaisse pas dans la hg branchesliste:

hg commit --close-branch -m 'close badbranch, this approach never worked'

Est-il possible de rouvrir ultérieurement la succursale si besoin est?

Lóránt Pintér
la source
13
Vous devriez simplement l'essayer, la meilleure façon d'apprendre est d'expérimenter, et comme les dépôts sont bon marché avec Hg, allez-y simplement.
Lasse V. Karlsen
1
Sale petit secret: une "branche" en langage Hg n'est qu'une autre façon de dire "une étiquette de texte associée à un commit". Une "branche" peut avoir plusieurs têtes différentes pour de nombreux commits différents qui ne sont pas liés.
user2864740

Réponses:

164

Vous pouvez simplement accéder hg updateà la branche fermée puis en faire une autre hg commitet elle se rouvrira automatiquement.

L' closedindicateur est juste utilisé pour filtrer les branches fermées de hg brancheset hg headssauf si vous utilisez l' --closedoption - il ne vous empêche pas d'utiliser les branches.

Tim Delaney
la source
20
Le commit ne fera rien à moins qu'il y ait quelque chose à valider, donc vous devrez peut-être faire un changement gratuit pour que cela se produise.
Francis Upton IV
1
Merci de l'avoir signalé - j'avais supposé que les changements étaient implicites en faisant un commit, mais bien sûr, si vous voulez simplement supprimer le drapeau fermé, vous ne pouvez pas sans changement.
Tim Delaney le
3
Un tag suffit pour le rendre commitable.
devlord
Cela peut fonctionner à partir de l'interface de ligne de commande, je ne l'ai pas encore essayé, mais TortoiseHg ne vous laissera pas mettre à jour vers une branche fermée. Si vous essayez de le faire, le bouton Mettre à jour est désactivé.Pour que cela fonctionne, je devais mettre à jour la branche avant le jeu de modifications de fermeture (en fait le parent), puis mettre à jour le jeu de modifications de fermeture. La chose étrange est que lorsque vous mettez à jour vers le parent, TortoiseHg affirme que l'ensemble de modifications proche (le descendant) est le parent. Quoi qu'il en soit, cela fonctionne très bien une fois que vous avez franchi les bons cerceaux.
DaveN59
Je l'ai utilisé (ligne de commande via le terminal dans phpstorm) et fonctionne comme un charme, merci
Mathieu Dierckx
15

Vous pouvez rouvrir une branche en utilisant l'indicateur "-f" lors de la 'création' de la branche.

Non, cette commande créera une nouvelle branche avec le même nom.

Oubliez simplement qu'il est fermé. Basculez vers la branche, apportez les modifications et validez. Il sera automatiquement rouvert. Lorsque vous avez terminé, vous pouvez le refermer.

Rafael Piccolo
la source
Je pensais que, contrairement à Git, les branches nommées Mercurial sont permanentes et que les noms de branche ne peuvent donc pas être réutilisés. Que suis-je déroutant? S'agit-il de plusieurs têtes pour la même branche dont nous parlons?
Nate Cook
2

essayez avec ce qui suit:

hg pull && hg update branch_name

Maintenant, apportez une petite modification à l'un des fichiers, puis validez-le

 hg commit -m "minor change"

puis poussez-le

hg push -b . 

Vous devriez maintenant pouvoir travailler normalement.

Dipendra
la source
-3

Essaye ça.

Basculez vers la branche fermée avant d'exécuter. (hg up closed_branch)

hg st

toucher un

ajouter un

hg commit -m 'rouvrir la branche fermée'

Cela rouvrira la succursale fermée.

Geetanjali
la source
12
Ceci ajoute un fichier vide inutile au référentiel, c'est faux.
Rafael Piccolo