Mercurial

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

Mercurial
New Mercurial logo.svg
DéveloppeurMatt Mackall
Dernière version1.6.2
EnvironnementMultiplate-forme
Langueanglais
TypeGestion de version
LicenceGNU GPL
Site Webselenic.com/mercurial/wiki/

Mercurial est un système de gestion de versions permettant en particulier la gestion de version décentralisée. Il est disponible sur plusieurs plates-formes : systèmes Unix, Windows, Mac OS X.

Le créateur et principal développeur de Mercurial est Matt Mackall. C'est un logiciel libre, l'ensemble des sources du logiciel étant sous la GNU GPL version 2.

Mackall met à disposition Mercurial pour la première fois le 19 avril 2005, seulement quelques jours après que le développement de Git a commencé.

Informations techniques

Disponible pour les systèmes d'exploitation Microsoft Windows, Mac OS X, et sur la plupart des systèmes d'exploitation du type Unix, Mercurial est écrit principalement en Python. Il a été créé pour s'utiliser via des lignes de commandes. Toutes les commandes commencent par « hg », en référence au symbole chimique du mercure. Ses principales caractéristiques sont, entre autres :

  • sa rapidité et sa capacité à gérer les gros projets ;
  • son utilisation sans nécessiter un serveur ;
  • son fonctionnement complètement distribué ;
  • sa robustesse dans la gestion des fichiers ASCII et binaires ;
  • sa gestion avancée des branches et des fusions ;
  • son interface web intégrée.

Comme Git et Monotone, Mercurial utilise une fonction de hachage SHA-1 pour identifier ses versions.

Mercurial utilise un protocole réseau basé sur HTTP.

Les principales commandes de Mercurial

add 

Ajoute tout ou une partie des fichiers pour le prochain commit

annotate 

Montre l'origine de chaque ligne distincte dans un fichier texte (auteur, date, révision...)

archive 

Extrait une version sans les méta-données depuis le dépôt

clone 

Fait une copie du dépôt d'un projet existant

commit (ci) 

Enregistre une partie ou toutes les modifications locales dans le dépôt créant ainsi une nouvelle version

diff 

Calcule la différence entre deux versions

export 

Récupère les en-têtes et les différences pour une ou plusieurs versions

init 

Créé un dépôt dans le répertoire donné en paramètre (répertoire courant sans paramètre)

log 

Donne l'historique des versions d'un dépôt entier ou de fichiers donnés

manifest 

Donne la liste des fichiers contenus dans une version donnée

merge 

Fusionne le répertoire de travail avec une autre version

parents 

Montre les parents de la version de travail en cours ou d'une version donnée

pull 

Récupère les changements depuis un dépôt donné

push 

Exporte les changements vers un dépôt donné

remove (rm) 

Supprime tout ou une partie des fichiers pour le prochain commit

revert 

Revient à une version donnée de fichiers ou de répertoires

serve 

Rend visible le contenu du dépôt via HTTP

status (st) 

Montre les fichiers qui ont subi des changements dans le répertoire de travail

strip 

Efface une version ainsi que toutes les versions suivantes sur une branche donnée

tag 

Associe un marqueur (une étiquette, un label) à une version donnée

tags 

Liste tous les marqueurs d'un dépôt

update (up/checkout/co) 

Met à jour ou fusionne le répertoire de travail

verify 

Vérifie l'intégrité d'un dépôt

Projets utilisateurs

Voici une liste de quelques projets qui utilisent Mercurial (Mercurial en fait aussi partie) :

  • Adium
  • ALSA
  • Conary
  • Coyotos
  • CubicWeb
  • e2fsprogs
  • GalaxyMage
  • GeexBox
  • Logilab
  • MoinMoin
  • Mozilla
  • NetBeans
  • Nuxeo
  • Octave
  • OpenJDK
  • OpenOffice.org
  • OpenSolaris
  • PETSc (en)
  • Python
  • SAGE
  • V4L
  • wmii
  • Xen
  • Xine