Mercurial pour nous les nuls, leçon 2 : repository

Index des leçons :

  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

Suite des leçons à propos de Mercurial. Après la leçon 1 sur ce qu’est la gestion de version, une leçon sur ce qu’est un dépôt ou repository en anglais.

Résumé des leçons précédentes

Nous avons vu que Mercurial est un système de gestion de version qui permet de conserver tout l’historique des fichiers et dossiers constituant un projet et ce quelle que soit la nature de ce projet. Nous avons abordé la notion de révision, qui représente l’état enregistré à un instant t de tout ce qui a été modifié sur le projet depuis la révision précédente.

Le dépôt ou repository

Mercurial conserve l’historique. C’est une bonne chose. Encore faut-il lui donner un peu d’espace pour conserver cet historique. Cela se fait dans un dépôt. Les systèmes de gestion de version comme Mercurial ou Subversion utilisent différents moyens pour stocker cet historique et surtout pour faire en sorte que celui-ci ne vienne pas perturber le travail en cours[1].

Mercurial, que je nommerai Hg dans la suite des leçons — les plus savants d’entre vous auront immédiatement fait le rapprochement entre le symbole chimique du mercure, hg, et le nom de ce système —, enregistre tout l’historique dans un seul endroit. À la racine de votre projet, c’est-à-dire dans le dossier qui contient tous les dossiers et fichiers qui le composent, et le nomme .hg[2]

Pour illustrer cela, j’ai utilisé un logiciel client (ce sera l’objet de la leçon suivante) pour créer un dépôt Hg (Mercurial donc, si vous avez bien suivi) sur le disque dur de mon ordinateur. Pour ce faire j’ai uniquement indiqué l’endroit où serait stocké le dossier principal de mon projet. Voyons son contenu tel qu’on peut le voir normalement :

Répertoire principal du dépôt

Comme vous pouvez le constater, le dossier depot ne contient aucun élément, il est vide. Voyons maintenant avec un œil un peu plus acéré, et cette fois avec le terminal ou la console (la terminologie varie d’un système d’exploitation à un autre) ce qu’il contient réellement :

Contenu réel du dépôt

Deux éléments sont présents et ont été créés par Hg pour sa gestion interne. Le premier, .hg, qui est un dossier, sert et servira à stocker tout l’historique de ce dépôt. Le second .hgignore permet de définir une liste de fichiers et/ou de dossiers qui seront ignorés et donc non stockés dans l’historique. Nous verrons par la suite qu’il pourra y en avoir d’autres, toujours invisibles (leurs noms commenceront toujours par .hg).

Allez, soyons un peu plus curieux et pour ne rien cacher, jetons un œil au contenu du dossier .hg, mais je précise que ce sera la dernière fois que nous le ferons, seul Hg est censé s’en préoccuper :

Contenu du dossier de stockage de l'historique

Toute une série de fichiers et de dossiers, nécessaires et suffisants pour qu’Hg remplisse le rôle qu’on attend de lui. Si par mégarde vous supprimiez ce dossier alors vous perdriez l’intégralité de l’historique de votre projet ! Sachez simplement qu’il est vital pour Hg et qu’il ne faut pas y toucher.

Ce que je viens d’expliquer à propos du dépôt créé sur ma machine est en tout point valable pour un dépôt créé sur un serveur. L’avoir sur un serveur permet de partager ce dépôt avec d’autres contributeurs et ainsi de mettre en commun les développements qui y seront apportés. Seul l’endroit où sera stocké l’historique change.

Nous verrons dans la leçon suivante comment utiliser un logiciel client pour créer et faire vivre un dépôt local et distant (sur un serveur). Je vous parlerai également de Bitbucket qui est un serveur web offrant une plate-forme de gestion de dépôt Hg et que nous utilisons depuis peu pour le développement de Dotclear.

Conclusion

Un dépôt (ou repository en anglais) est un dossier contenant via des éléments masqués (leurs noms commencent par un .) tout l’historique des modifications apportées au projet, soit l’intégralité de ses révisions.

Glossaire

Dépôt : Dossier de stockage de l’historique des révisions d’un projet.


Leçon suivante

Notes

[1] Avec Mercurial le dépôt local sert également d’espace de travail pour les développements. Cela peut paraître confus au premier abord, mais simplifie la gestion sur le disque dur. Nous y reviendrons.

[2] Habituellement les fichiers et dossiers débutant par un . ne sont pas affichés par votre système d’exploitation (Windows, Linux, Mac OS X, …). C’est, je crois, un héritage des systèmes Unix.

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/7045

Haut de page