Attaquons maintenant le vif du sujet, la gestion d’un dépôt. Je ne reviens pas sur les leçons précédentes mais vous mets ci-dessous leurs liens si toutefois vous voudriez vous rafraîchir la mémoire :
- Leçon 1 : la gestion de version
- Leçon 2 : qu’est-ce qu’un dépôt ?
- Leçon 3 : les logiciels ”clients”
- Leçon 4 : création d’un dépôt
- Leçon 5 : enregistrement de révision
- Leçon 6 : synchronisation de dépôts, mise à jour du répertoire de travail
- Leçon 7 : identifier les différences
- Leçon 8 : la gestion des branches
- Leçon 9 : la fusion de branche
- Leçon 10 : retour vers le passé
- Leçon 11 : patch et collaboration indirecte
Gestion d’un dépôt
La première étape a effectuer pour gérer un dépôt est de le créer. Celui peut être créé localement sur votre machine ou sur un serveur offrant les services de gestion Mercurial. Dans le cadre du projet Dotclear nous avons choisi de nous appuyer sur le site Bitbucket sur lequel nous avons créés nos dépôts publics de développement[1]. Ce site permet de créer des dépôts puis de les cloner pour en obtenir une copie locale.
Création d’un dépôt local
À l’aide du logiciel MacHg je lance la commande Add Local Repository pour créer un dépôt local en lui indiquant son nom (qui servira à l’identifier dans la liste des dépôts), ici Dépôt
, ainsi que le répertoire dans lequel je souhaite qu’il enregistre celui-ci :
Une fois le dépôt créé, il apparait dans ma liste de dépôts :
Ce dépôt est suffisant pour gérer toutes les révisions à venir sur votre projet, tant que vous travaillez seul sur celui-ci et que vous n’avez pas besoin de le partager.
La commande à lancer dans un terminal pour créer un dépôt est la suivante :
hg init ~/mes-projets/depot
Création et clonage d’un dépôt distant
Cette fois-ci je vais créer un dépôt (repository en anglais) sur le site Bitbucket — après bien évidemment avoir créé un compte personnel, gratuit dans ce cas précis. Je me connecte à l’interface d’administration sur le site et je demande la création d’un dépôt après avoir fourni à minima son nom. Une fois validé je peux afficher sa fiche d’identité :
Un dépôt distant ne peut être utilisé directement depuis votre machine. Il faut, avant de pouvoir travailler dessus, en récupérer une image, un clone. On appelle cette action “cloner” ou “faire un fork”. Cette commande va récupérer une image parfaite du dépôt présent sur le serveur et venir le copier sur votre machine, toujours dans un dossier que vous lui aurez indiqué.
Pour obtenir ce clone je vais d’abord enregistrer ce dépôt distant dans ma liste de dépôts avec MacHg. Je lance la commande Add Server Repository et j’indique le nom du dépôt, son URL (l’adresse est fournie par le serveur Bitbucket, voir la fiche d’identité du dépôt) et éventuellement mon login et mon mot de passe s’il s’agit d’un dépôt privé :
Ainsi mon logiciel client MacHg saura d’où récupérer les révisions qui auront été enregistrées sur le dépôt distant et où envoyer les révisions enregistrées localement (à l’aide de la commande commit). C’est en quelque sorte l’équivalent de l’enregistrement d’un favori avec votre navigateur (vous enregistrez son URL, pas l’intégralité de son contenu distant).
Il faut ensuite cloner ce dépôt distant pour en avoir une version locale. Pour cela j’utilise la commande Clone :
J’indique alors un nom de dépôt local (afin de l’identifier dans ma liste de dépôt) et le répertoire où je souhaite que MacHg enregistre celui-ci :
Le répertoire indiqué sera créé et le contenu complet du dépôt distant sera alors rapatrié localement sur votre machine. Vous vous retrouverez alors dans la même configuration qu’avec un simple dépôt local :
Vous noterez que les deux dépôts (distant et local) ont des icônes différentes. De plus le logiciel indique un compteur à deux nombres dont je vous reparlerai bientôt. Sachez simplement que la présence de ce compteur indique dans le cas présent que le logiciel connait la relation entre les deux dépôts : le second est un clone (ou un fork) du premier.
L’équivalent en ligne de commande pour obtenir ce clone est la suivante (à adapter bien évidemment) :
hg clone https://bitbucket.org/franckpaul/commun ~/mes-projets/commun
Conclusion
Vous savez maintenant comment créer un dépôt local ou créer et cloner un dépôt distant. Nous verrons dans la leçon suivante comment travailler avec le dépôt en y créant des fichiers et des dossiers, en y apportant des modifications pour ensuite enregistrer ces révisions. Nous verrons également comment envoyer sur le dépôt distant les révisions enregistrées localement.
Glossaire
Clone ou fork : copie intégrale d’un dépôt (distant ou local). Le dépôt résultant “conserve” le lien de parenté qu’il possède avec son “original”.
Note
[1] Ils sont également disponibles également depuis peu sur un des serveurs de Dotclear.
1 De NancyAlex -
bonjour,
Je suis sous windows ( tortoiseHG) et je m’en sors pas du tout.comment on fait le “Add Server Repository ” dans le cas de tortoiseHG?
MERCI et bonne journée!!
2 De Franck -
Je crois (mais c’est à confirmer parce que je ne l’ai jamais utilisé) qu’il faut préciser l’URL du serveur distant au moment du clonage.
Il y a de la documentation en anglais disponible ici.