Table des matières

Présentation de Mercurial

Mercurial est un logiciel Gestionnaire de révisions de code source.

Il ressemble beaucoup à Git qui est le plus utilisé.

DCVS : voir WikiPedia

Dans l'invite de commande, toutes les commandes de Mercurial sont sous la forme : hg verbe paramètres

Pour information HG est le symbole de l'élément chimique appelé : Mercure.

Serveur de révision de la section SIO

192.168.104.246

Vous aurez un compte :

Manipulations de base

Connectez vous, avec Putty, avec votre compte et l'adresse IP ci-dessus.

Créer un dépôt

La commande hg init

<spoiler>

hg init nomDuProjet

ou

mkdir nomDuProjet
cd nomDuProjet
hg init

</spoiler>

Explications

Le dépot contient deux éléments importants :

eleve1.sio2@srvr-revisions ~/depots_mercurial$ hg init depot1
eleve1.sio2@srvr-revisions ~/depots_mercurial$ ls
depot1
eleve1.sio2@srvr-revisions depots_mercurial$ cd depot1
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ ls -al
total 12
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 .
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 ..
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 .hg

Un dépôt peut, aussi, être créé en "clonant" un dépôt existant : commande hg clone

Etat du dépôt

La commandehg status

<spoiler>hg status ou hg st</spoiler>

Ajout d'un fichier dans le dépôt

Il s'agit d'ajouter un fichier dans la liste des fichiers dont Mercurial va suivre les révisions

eleve1.sio2@srvr-revisions ~$ touch fic1.txt

<spoiler>hg add nomDuFichier</spoiler>

<spoiler>hg status</spoiler>

eleve1.sio2@srvr-revisions ~$ ls
eleve1.sio2@srvr-revisions ~$ mkdir depots_mercurial
eleve1.sio2@srvr-revisions ~$ cd depots_mercurial/
eleve1.sio2@srvr-revisions ~/depots_mercurial$ ls
eleve1.sio2@srvr-revisions ~/depots_mercurial$ hg init depot1
eleve1.sio2@srvr-revisions ~/depots_mercurial$ ls
depot1
eleve1.sio2@srvr-revisions ~/depots_mercurial$ cd depot1/
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ ls
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ ls -al
total 12
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 .
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 ..
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 .hg
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ ls -al .hg
total 20
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 .
drwxr-xr-x 3 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 ..
-rw-r--r-- 1 eleve1.sio2 eleve1.sio2   57 Sep 20 06:12 00changelog.i
-rw-r--r-- 1 eleve1.sio2 eleve1.sio2   23 Sep 20 06:12 requires
drwxr-xr-x 2 eleve1.sio2 eleve1.sio2 4096 Sep 20 06:12 store
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg log
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ vi fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ ls
fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
? fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg add fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
A fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg log

Ajouter la révision dans le dépôt

eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg commit -u eleve1.sio1 -m "Creation du fichier fic1.txt" eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg log
changeset:   0:a656ee7b3969
tag:         tip
user:        eleve1.sio1
date:        Fri Sep 20 06:31:59 2013 +0000
summary:     Creation du fichier fic1.txt

eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg diff

Modification du fichier

eleve1.sio2@srvr-revisions depots_mercurial/depot1$ vi fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
M fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg log
changeset:   0:a656ee7b3969
tag:         tip
user:        eleve1.sio1
date:        Fri Sep 20 06:31:59 2013 +0000
summary:     Creation du fichier fic1.txt

eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg commit -u eleve1.sio1 -m "Modification du fichier fic1.txt"
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg status
eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg log
changeset:   1:8f292c6d6e53
tag:         tip
user:        eleve1.sio1
date:        Fri Sep 20 06:43:12 2013 +0000
summary:     Modification du fichier fic1.txt

changeset:   0:a656ee7b3969
user:        eleve1.sio1
date:        Fri Sep 20 06:31:59 2013 +0000
summary:     Creation du fichier fic1.txt

eleve1.sio2@srvr-revisions depots_mercurial/depot1$ hg diff fic1.txt
eleve1.sio2@srvr-revisions depots_mercurial/depot1$

Cloner un dépôt