Mercurial

Un article de Frenchmozilla.

Aller à : Navigation, Rechercher

Attention : ce document est en cours de rédaction. Il est incomplet et contient sûrement des erreurs ou des approximations.

Sommaire

Installation de Mercurial

GNU/Linux

  • Installer Mercurial
  • Créer le fichier .hgrc dans votre répertoire home /home/utilisateur

Y ajouter les lignes suivantes :

# This is a Mercurial configuration file. 
[ui]
username = Prénom Nom <>

[paths]
default = http://hg.mozilla.org/l10n-central/fr/
default-push = ssh://hg.mozilla.org/l10n-central/fr/

Pour l'accès en ssh, ajouter les lignes suivantes dans le fichier ~/.ssh/config

Host hg.mozilla.org
User 

Le répertoire .ssh et son contenu ne doivent être accessible que par vous. Changez les droits d'accès en saisissant dans un terminal la commande suivante :

[user@machine ~]$ chmod -R 700 .ssh/

Windows

  • Installer Mercurial
  • Pour l'accès SSH, installer Putty et charger la clé dans Pageant
  • Créer le fichier Mercurial.ini dans votre répertoire utilisateur (C:\Documents and Settings\utilisateur)

Y ajouter les lignes suivantes :

# This is a Mercurial configuration file. 
[ui]
username = Prénom Nom <>
ssh="C:\Program Files\PuTTY\plink.exe" -ssh -l  -i "Chemin\vers\la\clé putty.ppk"

[paths]
default = http://hg.mozilla.org/l10n-central/fr/
default-push = ssh://hg.mozilla.org/l10n-central/fr/

Récupérer les sources

Par exemple, nous allons récupérer les sources de mozilla-central (toolkit + Firefox) Pour plus de clarté, créons un répertoire HG pour y mettre tous les référentiels Mercurial

mkdir HG
cd HG

Pour récupérer les sources :

hg clone http://hg.mozilla.org/mozilla-central/

Cette commande créera le répertoire /home/utilisateur/HG/mozilla-central contenant les sources.

Pour récupérer les sources fr :

mkdir l10n
cd l10n
hg clone http://hg.mozilla.org/l10n-central/fr/

Cette commande créera le répertoire /home/utilisateur/HG/l10n/fr contenant les sources.


Si vous voulez changer le nom du répertoire local qui recevra les sources :

hg clone http://hg.mozilla.org/mozilla-central/ mon_mozilla-central

Cette commande créera le répertoire /home/utilisateur/HG/mon_mozilla-central contenant les sources.

Mettre à jour sa copie locale

Se rendre dans le répertoire du référentiel

cd HG/mozilla-central
hg pull -u

Ceci récupérera les dernières changesets et les appliquera à votre copie locale.

Enregistrer une modification dans un fichier de la copie locale

Modifier le fichier avec l'éditeur de texte, l'enregistrer, puis :

hg commit

Ceci ouvre l'éditeur par défaut, dans mon cas vi

HG: Enter commit message.  Lines beginning with 'HG:' are removed.
HG: --
HG: user: Prénom Nom <>
HG: branch 'default'
HG: changed browser/locales/en-US/defines.inc
Ceci est un test

Le message ne doit être que sur une seule ligne. Enregistrer le document en quittant. Si vous ne voulez plus faire le commit, quitter l'éditeur sans enregistrer.

Le message de commit peut être indiqué également en ligne de commande :

hg commit -m "Ceci est un test"

Pour effectuer un commit sur un ou des fichiers spécifiques sans prendre en compte l'ensemble de votre dépôt local, utilisez la commande suivante :

hg commit -m "votre commentaire" fichier1 fichier2 ...

(source : )

Voir les différences

  • Pour voir les différences entre votre copie locale et le référentiel sur le réseau (après avoir fait une hg commit) :
hg outgoing -p http://hg.mozilla.org/mozilla-central/

Ceci donne à l'écran :

comparing with http://hg.mozilla.org/mozilla-central/
searching for changes
changeset:   16056:01c282d81e98
tag:         tip
user:        Prénom Nom <>
date:        Sat Jul 19 14:31:36 2008 +0200
files:       browser/locales/en-US/defines.inc
description:
Ceci est un test de commit local


diff -r 8f3ff1995383 -r 01c282d81e98 browser/locales/en-US/defines.inc
--- a/browser/locales/en-US/defines.inc	Sat Jul 19 12:38:25 2008 +0200
+++ b/browser/locales/en-US/defines.inc	Sat Jul 19 14:31:36 2008 +0200
@@ -4,6 +4,6 @@
 
 # If non-English locales wish to credit multiple contributors, uncomment this
 # variable definition and use the format specified.
-# #define MOZ_LANGPACK_CONTRIBUTORS Joe Solon Suzy Solon
+# #define MOZ_LANGPACK_CONTRIBUTORS Joe Solon Suzy Solon Test
 
 #unfilter emptyLines

L'option -p permet d'afficher le correctif au format diff unifié.

  • Afficher les différences par rapport à la dernière version présente dans votre repository local et avant d'avoir fait un hg commit, sinon cette commande ne renverra pas de résultat :

Utiliser la commande hg diff

État de la copie locale

Pour voir les fichiers modifiés, ajoutés, supprimés, ... localement :

hg status

Ce qui donne par exemple :

M browser/locales/en-US/defines.inc

Saisir la commande hg help status pour connaître la signification des lettres devant les noms de fichiers. Ici, M pour Modifié. En règle générale, saisir hg help commande pour connaître toutes les options de la commande et leurs significations.

Voir le journal des modifications

Hg log -r 16056

Ceci affichera le commentaire pour la révision 16056. Cependant, il est conseillé d'utiliser le "changeset" (en hexadécimal : hg log -r 01c282d81e98) pour identifier à coup sûr une modification. Le numéro de révision sur une copie locale peut correspondre à un tout autre changement pour le même numéro de révision sur un autre poste.

hg log -r 01c282d81e98
changeset:   16056:01c282d81e98
tag:         tip
user:        Nom Prénom <>
date:        Sat Jul 19 14:31:36 2008 +0200
summary:     Ceci est un test de commit local éçà

Pour afficher les modifications entre deux révisions utiliser par exemple hg log -r 5:8 pour voir le journal pour les révisions 5 à 8 (idem en hexadécimal). Pour afficher les changements entre une révision donnée et la dernière révision, faire suivre de ":" : hg log -r 5:.

Mettre à jour le référentiel sur le serveur

Après avoir fait un commit local des modifications, se rendre dans le référentiel Mercurial :

hg push ssh://hg.mozilla.org/l10n-central/fr/

Travailler avec deux branches

Créer le référentiel pour le tronc (actuellement la branche 1.9.2, -> Firefox 3.2)

mkdir HG
cd HG
hg clone http://hg.mozilla.org/l10n-central/fr/

Créer le référentiel pour la branche (actuellement la branche 1.9.1, -> Firefox 3.1)

mkdir HG191
cd HG191
hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/fr/

Les commandes hg pull et hg commit sont toujours utilisées de la même façon. Par contre, pour hg push, il faut modifier le fichier ~/.hgrc de la façon suivante :

# This is a Mercurial configuration file. 
[ui]
username = Prénom Nom <>
[paths]
default = 
default-push = 
tronc = ssh://hg.mozilla.org/l10n-central/fr/
branche = ssh://hg.mozilla.org/releases/l10n-mozilla-1.9.1/fr/

Pour éviter les erreurs, les variables defaut et default-push sont laissées vides. Pour faire un push dans le référentiel du tronc, se rendre dans le répertoire correspondant (dans notre exemple HG) et faire la commande suivante :

cd HG
hg push tronc

Pour la branche, se rendre dans le répertoire correspondant (dans notre exemple HG191), et faire la colmmande suivante :

cd HG191
hg push branche
Saved in parser cache with key frmoz_wiki-wiki_:pcache:idhash:1465-0!1!0!!fr!2!edit=0 and timestamp
Outils personnels