Bzr depuis git » Historique » Version 1
Daniel Dehennin, 03/11/2011 16:40
Suivi d’un projet bzr depuis git
1 | 1 | Daniel Dehennin | h1. Suivi d’un dépôt bzr depuis git |
---|---|---|---|
2 | 1 | Daniel Dehennin | |
3 | 1 | Daniel Dehennin | L’idée est d’utiliser @git@ tout en suivant les modifications upstream qui sont faites dans un dépôt bzr |
4 | 1 | Daniel Dehennin | |
5 | 1 | Daniel Dehennin | Pour ce faire nous créerons une branche spécifique qui sera un miroir des développements upstream. |
6 | 1 | Daniel Dehennin | |
7 | 1 | Daniel Dehennin | Nous finirons avec les branches suivantes : |
8 | 1 | Daniel Dehennin | |
9 | 1 | Daniel Dehennin | * bzr/upstream: Branche de synchronisation utilisée par "git-bzr":http://github.com/termie/git-bzr-ng, ne doit jamais être modifiée autrement que par l’outil ; |
10 | 1 | Daniel Dehennin | * upstream: Branche de synchronisation utilisée par "git-bzr":http://github.com/termie/git-bzr-ng, ne doit jamais être modifiée autrement que par l’outil ; |
11 | 1 | Daniel Dehennin | * master: Branche de développement EOLE. |
12 | 1 | Daniel Dehennin | |
13 | 1 | Daniel Dehennin | *Règle №1*: Il ne faut jamais modifier la branche @bzr/upstream@, ni placer dans cette branche. |
14 | 1 | Daniel Dehennin | |
15 | 1 | Daniel Dehennin | La branche @bzr/upstream@ est mise à jours par les commandes *git bzr sync bzr/upstream* et *git bzr pull bzr/upstream* mais l’espace de travail n’est pas mis à jour si la branche courante est @bzr/upstream@ lorsque ces commandes sont invoquées. |
16 | 1 | Daniel Dehennin | |
17 | 1 | Daniel Dehennin | Dans ce cas il faut forcer la mise à jour de l’espace de travail: |
18 | 1 | Daniel Dehennin | |
19 | 1 | Daniel Dehennin | <pre> |
20 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(bzr/upstream):$ git reset --hard HEAD |
21 | 1 | Daniel Dehennin | </pre> |
22 | 1 | Daniel Dehennin | |
23 | 1 | Daniel Dehennin | Il est possible d’invoquer *git bzr sync bzr/upstream* depuis n’importe quelle branche, seule la branche @bzr/upstream@ sera modifiée, il est ensuite possible de fusionner les modifications dans d’autres branches : |
24 | 1 | Daniel Dehennin | |
25 | 1 | Daniel Dehennin | <pre> |
26 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr):$ git bzr sync bzr/upstream |
27 | 1 | Daniel Dehennin | 15:09:08 Calculating the revisions to include ... |
28 | 1 | Daniel Dehennin | 15:09:08 Starting export of 960 revisions ... |
29 | 1 | Daniel Dehennin | 15:09:08 Exported 960 revisions in 0:00:00 |
30 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr):$ |
31 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr):$ git merge bzr/upstream |
32 | 1 | Daniel Dehennin | Updating 5aa84e2..ba4f520 |
33 | 1 | Daniel Dehennin | [...] |
34 | 1 | Daniel Dehennin | </pre> |
35 | 1 | Daniel Dehennin | |
36 | 1 | Daniel Dehennin | La commande *git bzr pull bzr/upstream* n’a d’utilitée que dans la branche @upstream@, elle est équivalente à : |
37 | 1 | Daniel Dehennin | |
38 | 1 | Daniel Dehennin | 1. *git bzr pull bzr/upstream* |
39 | 1 | Daniel Dehennin | 2. *git merge bzr/upstream* |
40 | 1 | Daniel Dehennin | |
41 | 1 | Daniel Dehennin | En dehors de la branche @upstream@, elle n’exécute que la première partie. |
42 | 1 | Daniel Dehennin | |
43 | 1 | Daniel Dehennin | h2. Plugin git-bzr |
44 | 1 | Daniel Dehennin | |
45 | 1 | Daniel Dehennin | Un plugin est nécessaire afin de suivre le dépôt bzr: "bzr-git-ng":http://github.com/termie/git-bzr-ng. |
46 | 1 | Daniel Dehennin | |
47 | 1 | Daniel Dehennin | L’exécutable @git-bzr@ doit se trouver dans le PATH, un répertoir ~/bin est ajouté à celui-ci, il contiendra un lien vers l’exécutable qui pourra ainsi facilement être mis à jour: |
48 | 1 | Daniel Dehennin | |
49 | 1 | Daniel Dehennin | <pre> |
50 | 1 | Daniel Dehennin | moi@work:~$ mkdir bin src |
51 | 1 | Daniel Dehennin | moi@work:~$ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc |
52 | 1 | Daniel Dehennin | moi@work:~$ cd src && git clone git://github.com/termie/git-bzr-ng.git |
53 | 1 | Daniel Dehennin | moi@work:~$ cd ~/bin && ln -s ~/src/git-bzr-ng/git-bzr |
54 | 1 | Daniel Dehennin | </pre> |
55 | 1 | Daniel Dehennin | |
56 | 1 | Daniel Dehennin | h2. Exemple réel de suivi d’un projet bzr |
57 | 1 | Daniel Dehennin | |
58 | 1 | Daniel Dehennin | Ces explications sont basés sur le suivi de l’outil "CDimage":http://dev-eole.ac-dijon.fr/projects/cdimage. |
59 | 1 | Daniel Dehennin | |
60 | 1 | Daniel Dehennin | La branche dédié à *upstream* se nomme *ubuntu* afin d’identifier la source, cela peut-être utile lors du suivi de plusieurs branches et/ou dépôt upstream. |
61 | 1 | Daniel Dehennin | |
62 | 1 | Daniel Dehennin | Les branches sont donc les suivantes: |
63 | 1 | Daniel Dehennin | |
64 | 1 | Daniel Dehennin | * bzr/ubuntu: Branche de synchronisation utilisée par "git-bzr":http://github.com/termie/git-bzr-ng, ne doit jamais être modifiée autrement que par l’outil ; |
65 | 1 | Daniel Dehennin | * ubuntu: Branche de synchronisation utilisée par "git-bzr":http://github.com/termie/git-bzr-ng, ne doit jamais être modifiée autrement que par l’outil ; |
66 | 1 | Daniel Dehennin | * master: Branche de développement EOLE. |
67 | 1 | Daniel Dehennin | |
68 | 1 | Daniel Dehennin | h3. Mise en place du suivi des modifications upstream |
69 | 1 | Daniel Dehennin | |
70 | 1 | Daniel Dehennin | Si vous souhaitez suivre directement la version upstream maintenue dans un dépôt bzr, il faut effectuer les actions suivantes: |
71 | 1 | Daniel Dehennin | |
72 | 1 | Daniel Dehennin | h3. Clone du dépôt EOLE |
73 | 1 | Daniel Dehennin | |
74 | 1 | Daniel Dehennin | <pre> |
75 | 1 | Daniel Dehennin | moi@work:~/src/$ git clone http://dev-eole.ac-dijon.fr/git/cdimage |
76 | 1 | Daniel Dehennin | Cloning into cdimage... |
77 | 1 | Daniel Dehennin | moi@work:~/src/$ cd cdimage && git checkout -b moi/test/bzr |
78 | 1 | Daniel Dehennin | </pre> |
79 | 1 | Daniel Dehennin | |
80 | 1 | Daniel Dehennin | Il est possible de partir d’un dépôt vide : |
81 | 1 | Daniel Dehennin | |
82 | 1 | Daniel Dehennin | <pre> |
83 | 1 | Daniel Dehennin | moi@work:~/src/$ mkdir projet && cd projet |
84 | 1 | Daniel Dehennin | moi@work:~/src/projet$ git init |
85 | 1 | Daniel Dehennin | </pre> |
86 | 1 | Daniel Dehennin | |
87 | 1 | Daniel Dehennin | h3. Importer le dépôt bzr upstream dans une branche git spécifique: |
88 | 1 | Daniel Dehennin | |
89 | 1 | Daniel Dehennin | Le nom de la branche ne doit pas entrer en confilt avec une branche locale, j’ai choisi @ubuntu@ pour visualiser qu’il s’agit de la version Ubuntu de l’outil : |
90 | 1 | Daniel Dehennin | |
91 | 1 | Daniel Dehennin | <pre> |
92 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr)$ git bzr import http://people.canonical.com/~cjwatson/bzr/cdimage/mainline ubuntu |
93 | 1 | Daniel Dehennin | Branched 867 revision(s).hing revisions:Finishing stream:Done 9846/98469846 |
94 | 1 | Daniel Dehennin | 14:29:38 Calculating the revisions to include ... |
95 | 1 | Daniel Dehennin | 14:29:38 Starting export of 956 revisions ... |
96 | 1 | Daniel Dehennin | 14:29:43 Exported 956 revisions in 0:00:04 |
97 | 1 | Daniel Dehennin | </pre> |
98 | 1 | Daniel Dehennin | |
99 | 1 | Daniel Dehennin | <pre> |
100 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr)$ git branch |
101 | 1 | Daniel Dehennin | bzr/ubuntu |
102 | 1 | Daniel Dehennin | master |
103 | 1 | Daniel Dehennin | * moi/test/bzr |
104 | 1 | Daniel Dehennin | ubuntu |
105 | 1 | Daniel Dehennin | </pre> |
106 | 1 | Daniel Dehennin | |
107 | 1 | Daniel Dehennin | *NB*: si vous partez d’un dépôt vide, il faut créer la branche master: |
108 | 1 | Daniel Dehennin | <pre> |
109 | 1 | Daniel Dehennin | moi@work:~/src/projet()$ git branch master ubuntu |
110 | 1 | Daniel Dehennin | moi@work:~/src/projet(master)$ git branch |
111 | 1 | Daniel Dehennin | bzr/ubuntu |
112 | 1 | Daniel Dehennin | * master |
113 | 1 | Daniel Dehennin | ubuntu |
114 | 1 | Daniel Dehennin | </pre> |
115 | 1 | Daniel Dehennin | |
116 | 1 | Daniel Dehennin | h3. Mettre à jour le suivi du dépôt upstream |
117 | 1 | Daniel Dehennin | |
118 | 1 | Daniel Dehennin | <pre> |
119 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr)$ git bzr sync bzr/ubuntu |
120 | 1 | Daniel Dehennin | http://people.canonical.com/~cjwatson/bzr/cdimage/mainline is permanently redirected to http://people.canonical.com/~cjwatson/bzr/cdimage/mainline/ |
121 | 1 | Daniel Dehennin | 14:31:51 Calculating the revisions to include ... |
122 | 1 | Daniel Dehennin | 14:31:51 Starting export of 956 revisions ... |
123 | 1 | Daniel Dehennin | 14:31:51 Exported 956 revisions in 0:00:00 |
124 | 1 | Daniel Dehennin | </pre> |
125 | 1 | Daniel Dehennin | |
126 | 1 | Daniel Dehennin | h3. Intégrer les modifications upstream à une branche locale |
127 | 1 | Daniel Dehennin | |
128 | 1 | Daniel Dehennin | <pre> |
129 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr)$ git merge bzr/ubuntu |
130 | 1 | Daniel Dehennin | Updating 5aa84e2..ba4f520 |
131 | 1 | Daniel Dehennin | [...] |
132 | 1 | Daniel Dehennin | </pre> |
133 | 1 | Daniel Dehennin | |
134 | 1 | Daniel Dehennin | h3. Paramètre de configuration spécifique à git-bzr |
135 | 1 | Daniel Dehennin | |
136 | 1 | Daniel Dehennin | <pre> |
137 | 1 | Daniel Dehennin | moi@work:~/src/cdimage(moi/test/bzr)$ git config -l |
138 | 1 | Daniel Dehennin | [...] |
139 | 1 | Daniel Dehennin | bzr.ubuntu.bzr=bzr/ubuntu |
140 | 1 | Daniel Dehennin | bzr.bzr/ubuntu.upstream=http://people.canonical.com/~cjwatson/bzr/cdimage/mainline |
141 | 1 | Daniel Dehennin | </pre> |