Projet

Général

Profil

Wiki » Historique » Version 1

Daniel Dehennin, 03/11/2011 15:23
Suivi de dépôt bzr depuis git

1 1 Daniel Dehennin
h1. Suivi de la version bzr
2 1 Daniel Dehennin
3 1 Daniel Dehennin
L’idée est d’utiliser @git@ tout en suivant les modifications d’Ubuntu.
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 Ubuntu.
6 1 Daniel Dehennin
7 1 Daniel Dehennin
Nous finirons avec les branches suivantes :
8 1 Daniel Dehennin
9 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 ;
10 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 ;
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/ubuntu@, ni placer dans cette branche.
14 1 Daniel Dehennin
15 1 Daniel Dehennin
La branche @bzr/ubuntu@ est mise à jours par les commandes *git bzr sync bzr/ubuntu* et *git bzr pull bzr/ubuntu* mais l’espace de travail n’est pas mis à jour si la branche courante est @bzr/ubuntu@ 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/ubuntu):$ 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/ubuntu* depuis n’importe quelle branche, seule la branche @bzr/ubuntu@ 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/ubuntu
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/ubuntu
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/ubuntu* n’a d’utilitée que dans la branche @ubuntu@, elle est équivalente à :
37 1 Daniel Dehennin
38 1 Daniel Dehennin
1. *git bzr pull bzr/ubuntu*
39 1 Daniel Dehennin
2. *git merge bzr/ubuntu*
40 1 Daniel Dehennin
41 1 Daniel Dehennin
En dehors de la branche @ubuntu@, 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. Mise en place du suivi des modifications upstream
57 1 Daniel Dehennin
58 1 Daniel Dehennin
Si vous souhaitez suivre directement la version upstream maintenue dans un dépôt bzr, il faut effectuer les actions suivantes:
59 1 Daniel Dehennin
60 1 Daniel Dehennin
h3. Clone du dépôt EOLE
61 1 Daniel Dehennin
62 1 Daniel Dehennin
<pre>
63 1 Daniel Dehennin
moi@work:~/src/$ git clone http://dev-eole.ac-dijon.fr/git/cdimage
64 1 Daniel Dehennin
Cloning into cdimage...
65 1 Daniel Dehennin
moi@work:~/src/$ cd cdimage && git checkout -b moi/test/bzr
66 1 Daniel Dehennin
</pre>
67 1 Daniel Dehennin
68 1 Daniel Dehennin
h3. Importer le dépôt bzr upstream dans une branche git spécifique:
69 1 Daniel Dehennin
70 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 :
71 1 Daniel Dehennin
72 1 Daniel Dehennin
<pre>
73 1 Daniel Dehennin
moi@work:~/src/cdimage(moi/test/bzr)$ git bzr import http://people.canonical.com/~cjwatson/bzr/cdimage/mainline ubuntu
74 1 Daniel Dehennin
Branched 867 revision(s).hing revisions:Finishing stream:Done 9846/98469846
75 1 Daniel Dehennin
14:29:38 Calculating the revisions to include ...
76 1 Daniel Dehennin
14:29:38 Starting export of 956 revisions ...
77 1 Daniel Dehennin
14:29:43 Exported 956 revisions in 0:00:04
78 1 Daniel Dehennin
</pre>
79 1 Daniel Dehennin
80 1 Daniel Dehennin
<pre>
81 1 Daniel Dehennin
moi@work:~/src/cdimage(moi/test/bzr)$ git branch
82 1 Daniel Dehennin
  bzr/ubuntu
83 1 Daniel Dehennin
  master
84 1 Daniel Dehennin
* moi/test/bzr
85 1 Daniel Dehennin
  ubuntu
86 1 Daniel Dehennin
</pre>
87 1 Daniel Dehennin
88 1 Daniel Dehennin
h2. Mettre à jour le suivi du dépôt upstream
89 1 Daniel Dehennin
90 1 Daniel Dehennin
<pre>
91 1 Daniel Dehennin
moi@work:~/src/cdimage(moi/test/bzr)$ git bzr sync bzr/ubuntu
92 1 Daniel Dehennin
http://people.canonical.com/~cjwatson/bzr/cdimage/mainline is permanently redirected to http://people.canonical.com/~cjwatson/bzr/cdimage/mainline/
93 1 Daniel Dehennin
14:31:51 Calculating the revisions to include ...
94 1 Daniel Dehennin
14:31:51 Starting export of 956 revisions ...
95 1 Daniel Dehennin
14:31:51 Exported 956 revisions in 0:00:00
96 1 Daniel Dehennin
</pre>
97 1 Daniel Dehennin
98 1 Daniel Dehennin
h2. Intégrer les modifications upstream à une branche locale
99 1 Daniel Dehennin
100 1 Daniel Dehennin
<pre>
101 1 Daniel Dehennin
moi@work:~/src/cdimage(moi/test/bzr)$ git merge bzr/ubuntu
102 1 Daniel Dehennin
Updating 5aa84e2..ba4f520
103 1 Daniel Dehennin
[...]
104 1 Daniel Dehennin
</pre>
105 1 Daniel Dehennin
106 1 Daniel Dehennin
h2. Paramètre de configuration spécifique à git-bzr
107 1 Daniel Dehennin
108 1 Daniel Dehennin
<pre>
109 1 Daniel Dehennin
moi@work:~/src/cdimage(moi/test/bzr)$ git config -l
110 1 Daniel Dehennin
[...]
111 1 Daniel Dehennin
bzr.ubuntu.bzr=bzr/ubuntu
112 1 Daniel Dehennin
bzr.bzr/ubuntu.upstream=http://people.canonical.com/~cjwatson/bzr/cdimage/mainline
113 1 Daniel Dehennin
</pre>