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