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>