slitaz-doc-wiki-data diff pages/fr/cookbook/advancedhg.txt @ rev 4

Add pages/fr folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:13:35 2011 +0000 (2011-02-26)
parents
children b8e0b134ba24
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pages/fr/cookbook/advancedhg.txt	Sat Feb 26 12:13:35 2011 +0000
     1.3 @@ -0,0 +1,128 @@
     1.4 +====== Utilisation avancée de Mercurial ======
     1.5 +
     1.6 +==== Utiliser un outil externe pour joindre (merge) ====
     1.7 +
     1.8 +Si vous utilisez les outils présentés sur cette page, particulièrement MQ, avoir un outil pour gérer les jointures (lorsque plusieurs modifications se chevauchent et qu'il faut définir le résultat à la main) vous sera probablement utile. SliTaz propose Meld, un logiciel léger qui remplit bien cette fonction. Après installation, indiquer à Mercurial de l'utiliser si nécéssaire en ajoutant dans ~/.hgrc:
     1.9 +
    1.10 +<code>
    1.11 +[ui]
    1.12 +merge = meld
    1.13 +</code>
    1.14 +
    1.15 +==== Extensions utiles ====
    1.16 +
    1.17 +Pour ajouter une extension, il est possible d'utiliser le fichier ~/.hgrc; La syntaxe est:
    1.18 +
    1.19 +<code>
    1.20 +[extensions]
    1.21 +nom = adresse
    1.22 +</code>
    1.23 +Certaines extensions sont fournies avec Mercurial et il n'est donc pas nécéssaire de donner leur adresse. C'est le cas des quatre suivantes:
    1.24 +
    1.25 +**color**
    1.26 +Ajoute la couleur dans Mercurial. Utile quand on affiche les différences entre différentes versions d'un fichier.
    1.27 +
    1.28 +**hgext.fetch**
    1.29 +Ajoute la commande hg fetch, qui regroupe hg pull && hg merge && hg update.
    1.30 +
    1.31 +**hgext.graphlog**
    1.32 +Ajoute la commande glog qui afficher l'arbre des révisions avec le log; Il est conseillé de limité la longueur du log avec l'option -l (ex. -l 10). L'option -p permet d'afficher le détails des différences introduites à chaque étape.
    1.33 +
    1.34 +**mq**
    1.35 +Cet outils est expliqué plus en détail ci-dessous. Il permet de gérer une liste de patch pour un dépôt Mercurial: les appliquer, retirer, mettre à jour, etc. Cette extension ajoute plusieurs commandes, qui commencent généralement par 'q'.
    1.36 +Plusieurs pages web détaillent cet outils, rechercher: mercurial mq
    1.37 +
    1.38 +
    1.39 +==== Fonctions MQ de base ====
    1.40 +Dans un dépôt Mercurial, créer un dépôt de patch avec contrôle des révision; C'est un dépôt de patch dont les changements peuvent être enregistrés via Mercurial, comme un dépôt dans le dépôt:
    1.41 +<code>hg qinit -c</code>
    1.42 +
    1.43 +Après avoir procédé à des modifications, les enregistrer en tant que patch plutôt que les commiter:
    1.44 +<code>hg qnew nom_du_patch</code>
    1.45 +
    1.46 +Voir les patches appliqués/non-appliqués:
    1.47 +<code>hg qseries -v</code>
    1.48 +
    1.49 +Ajouter des modifications au patch en cours d'utilisation (le dernier appliqué):
    1.50 +<code>hg qrefresh</code>
    1.51 +
    1.52 +Appliquer le patch suivant de la file:
    1.53 +<code>hg qpush</code>
    1.54 +
    1.55 +Appliquer tous les patchs:
    1.56 +<code>hg qpush -a</code>
    1.57 +
    1.58 +Dé-appliquer le patch courant:
    1.59 +<code>hg qpop</code>
    1.60 +
    1.61 +Dé-appliquer tous les patchs:
    1.62 +<code>hg qpop -a</code>
    1.63 +
    1.64 +Aller à un patch précis dans la file:
    1.65 +<code>hg qgoto patch</code>
    1.66 +
    1.67 +Ajouter un message au patch courant (en vue de le commiter):
    1.68 +<code>hg qrefresh -m "Message"</code>
    1.69 +
    1.70 +Transformer un patch en commit:
    1.71 +<code>hg qfinish patch</code>
    1.72 +
    1.73 +Commiter les changements effectués dans le dépôt de patchs:
    1.74 +<code>hg qcommit -m "Message de commit"</code>
    1.75 +
    1.76 +Not : Les patchs sont enregistrés dans .hg/patches. Le fichier .hg/patches/series peut être modifié manuellement pour changer l'ordre d'application des patchs; Attention cependant si plusieurs patchs modifient un même fichier: cela peut créer des problèmes.
    1.77 +
    1.78 +==== MQ & Jointure ====
    1.79 +
    1.80 +**Principe général**
    1.81 +
    1.82 +Les patchs peuvent être mis à jour en utilisant l'outil merge de Mercurial: c'est plus facile que de les éditer manuellement. Pour cela, il est nécéssaire d'avoir deux têtes (heads) dans le dépot. L'une étant le dépôt avec les patchs appliqués; l'autre le dépôt avec les nouveaux commits/update/etc:
    1.83 +
    1.84 +<code>
    1.85 +o Nouvelle version du dépôt
    1.86 +|
    1.87 +|
    1.88 +| o Patchs
    1.89 +| |
    1.90 +| /
    1.91 +|
    1.92 +o Dépôt avant application des patchs
    1.93 +</code>
    1.94 +
    1.95 +La branche patchs sera ensuite jointe à la nouvelle branche, et MQ tirera utilisera la fonction merge de Mercurial pour mettre à jour les patchs. Notez que l'utilisation d'un outils externe pour gérer les jointures problématiques (comme Meld proposé au-dessus) est hautement recommandée.
    1.96 +
    1.97 +Créer la tête patchs:
    1.98 +<code>
    1.99 +qpush -a
   1.100 +hg tags # Retenir/Noter le numéro de révision de qparent
   1.101 +qsave -e -c #Sauvegarder l'état des patchs, cette sauvegarde sera utilisée durant l'opération merge. (Retenir/Noter le numéro à la fin de patches.N; généralement c'est 1)
   1.102 +</code>
   1.103 +
   1.104 +Créer la nouvelle tête:
   1.105 +<code>
   1.106 +hg update -C <N°qparent> # Aller à la révision notée ci-dessus
   1.107 +
   1.108 +# Ensuite, selon ce que vous voulez faire:
   1.109 +# Mettre à jour:
   1.110 +hg pull -u
   1.111 +# Commiter des changements, modifier puis:
   1.112 +hg commit -m "message"
   1.113 +# Modifier un patch:
   1.114 +hg qgoto patch # Puis modifier les fichiers et:
   1.115 +hg qrefresh</code>
   1.116 +
   1.117 +Pour lancer l'opération de merge:
   1.118 +<code>hg qpush -a -m</code>
   1.119 +
   1.120 +Nettoyer le dépôt:
   1.121 +<code>
   1.122 +hg qpop -a
   1.123 +hg qpop -a -n patches.N
   1.124 +rm -r .hg/patches.N
   1.125 +</code>
   1.126 +
   1.127 +Enregistrer les changements dans le dépôt de patchs:
   1.128 +<code>hg qcommit -m "Mise à jour pour rev???"</code>
   1.129 +
   1.130 +Ré-appliquer la série de patch:
   1.131 +<code>hg qpush -a</code>