Lorsque vous utilisez hg branch FeatureBranchName
et en le publiant dans un référentiel central partagé par les développeurs, existe-t-il un moyen de fermer le FeatureBranchName
lorsque son développement a été officiellement fusionné avec la branche par défaut?
Il serait également utile que le FeatureBranchName
ne soit pas visible lors de l'exécution d'un hg branches
commande.
hg commit --close-branch
devrait être suffisant pour marquer une succursale proche. (voir hg commit
)
--close-branch
marquer une branche comme fermée en la cachant de la liste des branches.
Voir aussi ce fil :
Mon attente est de fermer une succursale parce que cette ligne de développement est dans une impasse et que je ne veux plus en être dérangé.
Par conséquent, quand une branche est fermée, je ne devrais pas la voir (dans les branches, les têtes, les journaux, par exemple), sauf si je demande explicitement à voir les branches fermées.Je devrais noter que je m'attends à ce qu'une branche fermée reste dans le référentiel; cela peut être utile à l'avenir, et le
commit --close-branch
_ message devrait au moins expliquer pourquoi la succursale a été fermée.
branches de taille est une autre chose.
Remarque: cette activité "fermeture de succursale" en est une aspect considéré comme manquant dans Git comparé à Mercurial :
On nous dit toujours que les branches en git sont des objets éphémères à utiliser et à jeter, et pour autant que je sache, git n’a aucun moyen d’indiquer à vos collègues que vous vous en sortez avec une branche;
le seul moyen de le faire est de le supprimer ou d’espérer qu’il voit l’engagement de la fusion finale et comprendre que la branche est fermée à un développement ultérieur.[Dans Mercurial] Lorsque vous avez terminé avec une branche, vous ne pouvez pas la supprimer du référentiel; Au lieu de cela, vous émettez un commit qui ferme la branche et Mercurial note que la branche est fermée. Cela restera une partie permanente de l’historique de votre référentiel.
J'ai écrit un script simple qui complète la fermeture de la branche, commandes trouvées à PruningDeadBranches .
#!/bin/bash
#script to close the not required branch in Mercurial
hg up -C $1
if [ $? -eq 0 ]; then
echo "$1 is up"
else
echo "branch not found, please recheck your argument"
exit 1
fi
# if we are here then the branch is up, so we do the following
hg commit --close-branch -m 'this branch no longer required'
echo "$1 is closed"
hg up -C default
echo "default is up"
Passez à la copie locale du référentiel et exécutez ce script en donnant un argument. Par exemple:
$./the_script_above.sh bad_branch_name_to_close
Cela fait ce qui suit: