Mercurial pour nous les nuls, leçon 4 : init, clone

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 :

  1. Leçon 1 : la gestion de version
  2. Leçon 2 : qu’est-ce qu’un dépôt ?
  3. Leçon 3 : les logiciels ”clients”
  4. Leçon 4 : création d’un dépôt
  5. Leçon 5 : enregistrement de révision
  6. Leçon 6 : synchronisation de dépôts, mise à jour du répertoire de travail
  7. Leçon 7 : identifier les différences
  8. Leçon 8 : la gestion des branches
  9. Leçon 9 : la fusion de branche
  10. Leçon 10 : retour vers le passé
  11. 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 :

Création d'un dépôt local avec MacHg

Une fois le dépôt créé, il apparait dans ma liste de dépôts :

Liste de mes dépôts dans MacHg

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é :

Fiche d'identité du dépôt sur le site Bitbucket

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é :

Ajout d'un dépôt distant avec MacHg

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 :

Commande Clone de la barre d'outil de MacHg

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 :

Clonage d'un dépôt avec macHg

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 :

Liste de mes dépôts dans MacHg

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”.


Leçon suivante

Note

[1] Ils sont également disponibles également depuis peu sur un des serveurs de Dotclear.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/7056

Haut de page