Branches dans mercurial
aide mémoire mercurial
Création d'un dépôt avec hg init
. On y ajoute quelques données avec echo "bla" > bla
, fichier qu'on intègre à la surveillance de modification avec hg add
.
On commit tout ça par un gracieux hg ci -m "rien"
.
Dans le mouvement, on va créer une nouvelle branche pour le chien en tapant sur le clavier la séquences de touches suivantes hg branch chien
. On manipule des fichiers hg rm bla; echo "wouaf" > wouaf
car le chien ne blablatte pas, il wouafe.
On commit tout ça en prennant soin d'intégrer notre nouveau fichier par la commande suivante : hg add; hg ci -m "medor"
On vérifie le log de mercurial
hg log
changeset: 1:e8e46c31573d
branch: chien
user: Fabrice THIROUX <fabrice.thiroux@free.fr>
date: Sun May 24 23:04:45 2015 +0200
summary: medor
changeset: 0:e044ea64a3e9
user: Fabrice THIROUX <fabrice.thiroux@free.fr>
date: Sun May 24 23:04:23 2015 +0200
summary: rien
On regarde avec ls, seul le fichier wouaf est présent (et heureusement). On retourne sur la branche default en executant un tai sabaki correspondant aux touches hg update default
. On regarde avec ls, seul bla est présent. On modifie ce fichier et on commit. Nous voilà avec une révision pour la branche default.
changeset: 2:3f53c6d7f33d
tag: tip
parent: 0:e044ea64a3e9
user: Fabrice THIROUX <fabrice.thiroux@free.fr>
date: Sun May 24 23:06:44 2015 +0200
summary: blabla
changeset: 1:e8e46c31573d
branch: chien
user: Fabrice THIROUX <fabrice.thiroux@free.fr>
date: Sun May 24 23:04:45 2015 +0200
summary: medor
changeset: 0:e044ea64a3e9
user: Fabrice THIROUX <fabrice.thiroux@free.fr>
date: Sun May 24 23:04:23 2015 +0200
summary: rien
On fusionne ensuite les deux branches avec hg merge -r 1
(la révision 1 appartenant à la branche wouaf). Mercurial nous avertit qu'il y a eu un changement sur le fichier bla ; on garde la version modifiée, pas celle de la branche chien, donc delete est le mauvais choix^1. Nous voilà désormais avec une branche default comportant les modifications de la branche chien^2. On commit les changements liés à la fusion des branches.
Pour fermer la branche chien, on bascule dessus avec un hg update chien
, on la ferme avec hg commit --close-branch
. On affiche toutes les branches avec hg branches -c
default 3:f786079c7ecc
chien 4:ddc54b2d567b (closed)
Voilou !