|
1 .. -*- coding: utf-8 -*- |
|
2 |
|
3 .. _MercurialPresentation: |
|
4 |
|
5 Présentation de Mercurial |
|
6 ========================= |
|
7 |
|
8 Introduction |
|
9 ```````````` |
|
10 Mercurial_ gère un ensemble distribué d'entrepôts contenant des arbres de |
|
11 révisions (chaque révision indique les changements à effectuer pour obtenir la |
|
12 version suivante, et ainsi de suite). Localement, on dispose d'un entrepôt |
|
13 contenant un arbre de révisions, et d'un répertoire de travail. Il est possible |
|
14 de mettre dans son répertoire de travail, une des versions issue de son entrepôt |
|
15 local, de la modifier puis de la verser dans son entrepôt. Il est également |
|
16 possible de récuprer dans son entrepôt local des révisions venant d'un autre |
|
17 entrepôt, ou d'exporter ses propres révisions depuis son entrepôt local vers un |
|
18 autre entrepôt. |
|
19 |
|
20 A noter que contrairement à CVS/Subversion, on crée généralement un entrepôt par |
|
21 projet à gérer. |
|
22 |
|
23 Lors d'un développement collaboratif, on crée généralement un entrepôt central |
|
24 accessible à tout les développeurs du projet. Ces entrepôts centraux servent de |
|
25 référence. Selon ses besoins, chacun peut ensuite disposer d'un entrepôt local, |
|
26 qu'il faudra penser à synchroniser avec l'entrepôt central de temps à autre. |
|
27 |
|
28 |
|
29 Principales commandes |
|
30 ````````````````````` |
|
31 * Créer un entrepôt local :: |
|
32 |
|
33 hg clone ssh://orion//home/src/prive/rep |
|
34 |
|
35 * Voir le contenu de l'entrepôt local (outil graphique en Tk) :: |
|
36 |
|
37 hg view |
|
38 |
|
39 * Ajouter un sous-répertoire ou un fichier dans le répertoire courant :: |
|
40 |
|
41 hg add rep |
|
42 |
|
43 * Placer dans son répertoire de travail une révision spécifique (ou la dernière |
|
44 revision) issue de l'entrepôt local :: |
|
45 |
|
46 hg update [identifiant-revision] |
|
47 hg up [identifiant-revision] |
|
48 |
|
49 * Récupérer dans son entrepôt local, l'arbre de révisions contenu dans un |
|
50 entrepôt distant (cette opération ne modifie pas le répertoire local) :: |
|
51 |
|
52 hg pull ssh://orion//home/src/prive/rep |
|
53 hg pull -u ssh://orion//home/src/prive/rep # équivalent à pull + update |
|
54 |
|
55 * Voir quelles sont les têtes de branches de l'entrepôt local si un `pull` a |
|
56 tiré une nouvelle branche :: |
|
57 |
|
58 hg heads |
|
59 |
|
60 * Verser le répertoire de travail dans l'entrepôt local (et créer une nouvelle |
|
61 révision) :: |
|
62 |
|
63 hg commit |
|
64 hg ci |
|
65 |
|
66 * Fusionner, avec la révision mère du répertoire local, une autre révision issue |
|
67 de l'entrepôt local (la nouvelle révision qui en résultera aura alors deux |
|
68 révisions mères) :: |
|
69 |
|
70 hg merge identifiant-revision |
|
71 |
|
72 * Exporter dans un entrepôt distant, l'arbre de révisions contenu dans son |
|
73 entrepôt local (cette opération ne modifie pas le répertoire local) :: |
|
74 |
|
75 hg push ssh://orion//home/src/prive/rep |
|
76 |
|
77 * Voir quelle sont les révisions locales non présentes dans un autre entrepôt :: |
|
78 |
|
79 hg outgoing ssh://orion//home/src/prive/rep |
|
80 |
|
81 * Voir quelle sont les révisions d'un autre entrepôt non présentes localement :: |
|
82 |
|
83 hg incoming ssh://orion//home/src/prive/rep |
|
84 |
|
85 * Voir quelle est la révision issue de l'entrepôt local qui a été sortie dans le |
|
86 répertoire de travail et modifiée :: |
|
87 |
|
88 hg parent |
|
89 |
|
90 * Voir les différences entre le répertoire de travail et la révision mère de |
|
91 l'entrepôt local, éventuellement permettant de les verser dans l'entrepôt |
|
92 local :: |
|
93 |
|
94 hg diff |
|
95 hg commit-tool |
|
96 hg ct |
|
97 |
|
98 |
|
99 Bonnes pratiques |
|
100 ```````````````` |
|
101 * penser à faire un `hg pull -u` régulièrement et particulièrement avant de |
|
102 faire un `hg commit` |
|
103 |
|
104 * penser à faire un `hg push` lorsque votre entrepôt contient une version |
|
105 relativement stable de vos modifications |
|
106 |
|
107 * si un `hg pull -u` a créé une nouvelle tête de branche : |
|
108 |
|
109 1. identifier l'identifiant de celle-ci avec `hg head` |
|
110 2. fusionner avec `hg merge` |
|
111 3. `hg ci` |
|
112 4. `hg push` |
|
113 |
|
114 .. _Mercurial: http://www.selenic.com/mercurial/ |
|
115 |
|
116 .. include:: D061-mercurial-forest.en.txt |