Mercurial

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

Mercurial est un gestionnaire de code source décentralisé, rapide, et sécuritaire. Beaucoup de pages comparent Git et Mercurial, et ils sont en pratique très similaires pour l'utilisateur lambda. Cette page, par exemple, compare Git à McGyver, et Mercurial à James Bond, en ce sens que Git est composé d'un grand nombre d'outils, alors que Mercurial est composé d'un seul exécutable extrêmement efficace à réaliser les mêmes tâches.

Principe de fonctionnement

Contrairement aux gestionnaires CVS et SVN, et similairement à Git, Mercurial fonctionne sous un mode décentralisé. Cela signifie que les développeurs ne sont pas dépendants d'un dépôt central pour archiver des modifications. Chaque dépôt Git contient l'historique de l'arbre de travail au complet. Chaque objet (modification, fichier, répertoire) correspond à une feuille d'un arbre à branches multiples. Le développement d'un projet avec Mercurial est basé sur un modèle où une branche correspond à une fonctionnalité. Plusieurs itérations de la fonctionnalité peuvent être archivées avant que celle-ci soit fusionnée avec le tronc commun. Pour une explication détaillée du modèle de développement en branches, nous vous conseillons cette page (en anglais). Cette page est basée sur Git, mais les principes fondamentaux demeurent valides pour Mercurial.


Utilisation de base

De manière générale, une personne désirant travailler sur un projet doit :

  1. cloner ou créer le dépôt;
  2. apporter les modifications;
  3. archiver les modifications;
  4. propager les changements vers le dépôt d'origine.

Puisque Mercurial est décentralisé, il n'y a pas nécessairement dépôt autoritaire.

Résumé des commandes

Commandes de base
Commande Description
hg init Créer un nouveau dépôt
hg clone Cloner un dépôt existant
hg add Ajouter un fichier ou un répertoire dans l'index
hg rm Supprimer un fichier ou un répertoire de l'index
hg commit Archiver des modifications
hg push Propager des modifications archivées vers un autre dépôt
hg pull Récupérer les données d'un autre dépôt sans les appliquer au vôtre
hg pull -u Récupérer les données d'un autre dépôt en les appliquant au vôtre
hg update Appliquer les modifications récupérées au dépôt local
hg merge Fusionner les changements
hg rollback Effacer le dernier (et uniquement le dernier) jeu de modifications archivées


Commandes pour voir les changements
Commande Description
hg annotate Connaître l'origine de chaque modification
hg log Voir l'historique des enregistrements
hg diff Voir les différences entre deux versions
hg status Afficher le statut des fichiers


Commandes pour les branches, étiquettes et dépôts distants
Commande Description
hg branch Gérer les branches de développement
hg tag Gérer les étiquettes de version
hg update branch Se déplacer vers une branche nommée
hg update -C Mettre à jour le dépôt local en effaçant toutes les modifications locales


Commandes pour les rustines
Commande Description
hg export revision > fichier Créer une rustine
hg import fichier Appliquer une rustine à la branche courante

Créer ou cloner un dépôt

Pour débuter, il est possible de créer son propre dépôt ou bien de cloner un dépôt existant.

Pour créer un dépôt :

[nom@serveur $]  hg init mon-projet


Pour cloner un dépôt :

[nom@serveur $]  hg clone https://utilisateur@bitbucket.org/depot


Archiver un changement

Lorsque le dépôt est prêt, il faut se déplacer à l'intérieur.

 
 [nom@serveur $] cd mon-projet
 [nom@serveur $] nano fichier.txt
 


Lorsque le travail fait est prêt, il faut l'ajouter

[nom@serveur $]  hg add fichier.txt


et l'archiver

[nom@serveur $]  hg commit


Ensuite, il est possible de pousser les changements vers le dépôt d'origine avec

[nom@serveur $]  hg push


Hébergement de dépôts Mercurial

Bitbucket est l'un des principaux services d'hébergement de dépôts Mercurial disponible commercialement. Cette page liste un ensemble de sites permettant d'héberger des dépôts Mercurial.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager