background preloader

Tuto

Facebook Twitter

Gestion et contrôle de versions avec Mercurial. Mercurial est un système de contrôle de sources distribué (DVCS) écrit en Python par Matt Mackall, développeur noyau.

Gestion et contrôle de versions avec Mercurial

C'est un DVCS robuste comme son contemporain Git (les deux ont également en commun, le fait de reposer sur les mêmes concepts), tout en offrant une interface utilisateur saine. Mercurial pour nous les nuls, leçon 1 : version, revision. Index des leçons : Depuis quelques jours nous testons avec plus ou moins de bonheur un nouveau système de gestion de version, Mercurial.

Mercurial pour nous les nuls, leçon 1 : version, revision

Depuis longtemps en effet nous utilisions Subversion, svn pour les intimes, pour le développement de Dotclear, mais pour permettre un peu plus de souplesse dans la gestion des contributions multiples il a été décidé d’expérimenter un autre système. Arrivé à ce point de la lecture, deux cas se présentent : Vous n’avez rien compris aux deux phrases qui débutent ce billet, mais parce que vous ne voulez pas me froisser vous avez fait l’effort, louable, de lire encore jusqu’ici.Vous attendez la suite avec un petit air entendu du genre « oui, oui, encore un truc qui me concerne pas, j’ai déjà fait le tour de tout ça !

» et vous vous apprêtez à retourner à votre éditeur de code favori. Je vous propose donc, à partir d’aujourd’hui, de débroussailler ces notions jusqu’à une compréhension suffisante pour être capable de participer au développement. Conclusion. Mercurial, un gestionnaire de version décentralisé Apparu aux alentour de 2005, Mercurial fait partie de la dernière génération des systèmes de versions qui ont comme particularité d’être décentralisés.

Mercurial, un gestionnaire de version décentralisé

Contrairement aux systèmes centralisés tels que Subversion ou CVS, chaque développeur possède ses propres dépôts contenant l’intégralité des modifications d’un projet. Apparus dans le contexte de projets open source, ces DVCS permettent à un développeur extérieur à un projet de le “cloner” afin d’y ajouter une fonctionnalité. Possédant ainsi son propres dépôt il peut alors “versionner” ses modifications sans pour autant modifier le projet original. Une fois terminé il peut proposer aux développeurs du projet de récupérer son code afin de l’analyser en vue d’une intégration dans leur code de base. Avec Subversion, un tel scénario n’aurait pas été possible aussi simple. D’autres logiciels open source existent bien sûr, les plus connus sont (source wikipédia): On va donc prendre l’exemple d’une application web ayant les branches suivantes :

Gérer vos projets avec Mercurial. Opérations préalables Toutes les opérations de ce chapitre ne sont à effectuer qu'une seule fois par projet et par machine.

Gérer vos projets avec Mercurial

Créer un dépôt online Lorsqu'on travaille en équipe avec Mercurial, il faut avant tout un dépôt accessible tout le temps. Pour ce faire, on utilisera qui fournit un dépôt Mercurial gratuitement. La première chose à faire maintenant est de se créer un compte sur ce site. Une fois cela fait, vous pouvez enfin faire du Mercurial ! Pour les Linuxiens, pas de soucis : vous ouvrez un shell. Il faut maintenant vous placer dans le dossier où vous voulez stocker vos projets à coup de CD (voir le tutoriel de M@teo sur Linux pour ça).

On va commencer par récupérer tous les fichiers du projet. Hg clone Remplacez « monprojet » par le nom de votre projet. Euh ?! En effet, là, vous ne pouvez rien cloner. Hg init Maintenant la travail commence ! Un tutorial en français sur l'utilisation de Mercurial — Le blog des développeurs de Pilot Systems. Concepts de base Dans CVS et SVN, l'unité de base d'information est la revision ou version, correspondant à l'état précis d'un fichier (pour CVS) ou de l'ensemble des fichiers du dépôt (pour SVN).

Un tutorial en français sur l'utilisation de Mercurial — Le blog des développeurs de Pilot Systems

Dans Mercurial, l'unité de base est le changeset , littéralement « ensemble de changements ». Pour simplifier, on peut dire que CVS et SVN stockent les versions successives des fichiers (et calculent ensuite les diff à la volée), tandis que Mercurial stocke les différences entre les versions (et recalcule les fichiers à la volée). Ça n'est pas toujours vrai techniquement, mais c'est une bonne approximation ! Pour bien se représenter un dépôt Mercurial, il faut l'imaginer comme un graphe orienté acyclique (pour éviter d'employer les grands mots : un arbre dans lequel certaines branches peuvent se rejoindre) : Lorsqu'on souhaite identifier une revision, on peut le faire de plusieurs façons différentes : Un système distribué CVS et SVN sont des systèmes centralisés. Les commandes essentielles hg clone. Introduction à Mercurial. III-A.

Introduction à Mercurial

Création d'un dépôt▲ Si vous êtes seul, vous devez initier votre dépôt mercurial. Pour cela, placez vous dans le répertoire contenant les sources à versionner désiré et tapez la commande suivante : Cette commande aura pour effet de rajouter un dossier (.hg). C'est ce répertoire qui contient tout l'historique de votre dépôt. Ne supprimez pas le répertoire .hg, car vous perdriez tous l'historique de votre dépôt local. III-B. Imaginons maintenant que vous souhaitiez récupérer le contenu d'un dépôt existant, comme par exemple celui-ci : Ce dépôt est un dépôt mis à disposition par la société selenic afin de tester les capacités de mercurial. Hg clone [NomQueVousVoulez] Le paramètre [NomQueVousVoulez] est optionnel.