201 votes

Mercurial: Puis-je renommer une branche?

Nous avons maintenant une branche « stiging », où « d’arrêt » semble être un bien meilleur ajustement sémantique. Ce qui est une bonne stratégie pour gérer cela ?

217voto

3noch Points 1904

Mettez à jour la branche stiging et créez une nouvelle branche. Puis fermez la vieille branche.

En résumé:

 hg update stiging
hg branch staging
hg commit -m"Changing stiging branch to staging."
hg update stiging
hg commit --close-branch -m"This was a typo; use staging instead."
hg push --new-branch
 

59voto

alexis Points 10856

Pour les futurs lecteurs: Avec l' rebase extension, vous pouvez créer une nouvelle branche avec le même parent que stiging et déplacer la totalité de l'histoire de la branche, comme ceci:

hg update -r "parents(min(branch('stiging')))"
hg branch staging
hg commit
hg rebase --source "min(branch('stiging'))" --dest staging

Cela suppose qu' stiging n'a qu'un seul parent. Bien sûr, vous pouvez simplement utiliser des numéros de révision à la place.

Note 1: Si la branche stiging comprend fusionne avec d'autres branches, je pense que ce sera de préserver, tant qu' staging et stiging ont le même parent. Mais je serais certainement vérifier.

Note 2: Puisque cela modifie l'histoire, la vieille branche ne pas tout simplement disparaître de clonés référentiels (voir l' rebase documentation). À moins que tout le monde peut clone de nouveau, il ne peut pas être une solution très pratique pour un grand groupe.

Nota3/Modifier (avec l'aimable autorisation de @JasonRCoombs): Maintenant que les phases sont la norme dans mercurial, rebase refusent de modifier les ensembles de modifications qui ont déjà été poussé. Soit le tromper en changeant la phase retour du projet (avec hg phases), ou de laisser l'ancien branche de rester là où il est, et il suffit de faire une bien nommé copie (par exemple, avec hg rebase --keep").

16voto

tghw Points 14244

Si vous avez des changesets dessus, alors vous devrez utiliser l' extension convert avec une branche pour le renommer. Tout le monde devra ensuite cloner le nouveau dépôt ou enlever l'ancienne succursale.

15voto

lctr30 Points 369

Faire une nouvelle branche appelée "mise en scène" et oublier l'autre ...

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