Projet

Général

Profil

Wiki » Historique » Version 1

Version 1/4 - Suivant » - Version actuelle
Daniel Dehennin, 03/11/2011 15:23
Suivi de dépôt bzr depuis git


Suivi de la version bzr

L’idée est d’utiliser git tout en suivant les modifications d’Ubuntu.

Pour ce faire nous créerons une branche spécifique qui sera un miroir des développements Ubuntu.

Nous finirons avec les branches suivantes :

  • bzr/ubuntu: Branche de synchronisation utilisée par git-bzr, ne doit jamais être modifiée autrement que par l’outil ;
  • ubuntu: Branche de synchronisation utilisée par git-bzr, ne doit jamais être modifiée autrement que par l’outil ;
  • master: Branche de développement EOLE.

Règle №1: Il ne faut jamais modifier la branche bzr/ubuntu, ni placer dans cette branche.

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.

Dans ce cas il faut forcer la mise à jour de l’espace de travail:

moi@work:~/src/cdimage(bzr/ubuntu):$ git reset --hard HEAD

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 :

moi@work:~/src/cdimage(moi/test/bzr):$ git bzr sync bzr/ubuntu
15:09:08 Calculating the revisions to include ...
15:09:08 Starting export of 960 revisions ...
15:09:08 Exported 960 revisions in 0:00:00
moi@work:~/src/cdimage(moi/test/bzr):$ 
moi@work:~/src/cdimage(moi/test/bzr):$ git merge bzr/ubuntu
Updating 5aa84e2..ba4f520
[...]

La commande git bzr pull bzr/ubuntu n’a d’utilitée que dans la branche ubuntu, elle est équivalente à :

1. git bzr pull bzr/ubuntu
2. git merge bzr/ubuntu

En dehors de la branche ubuntu, elle n’exécute que la première partie.

Plugin git-bzr

Un plugin est nécessaire afin de suivre le dépôt bzr: bzr-git-ng.

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:

moi@work:~$ mkdir bin src
moi@work:~$ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
moi@work:~$ cd src && git clone git://github.com/termie/git-bzr-ng.git
moi@work:~$ cd ~/bin && ln -s ~/src/git-bzr-ng/git-bzr

Mise en place du suivi des modifications upstream

Si vous souhaitez suivre directement la version upstream maintenue dans un dépôt bzr, il faut effectuer les actions suivantes:

Clone du dépôt EOLE

moi@work:~/src/$ git clone http://dev-eole.ac-dijon.fr/git/cdimage
Cloning into cdimage...
moi@work:~/src/$ cd cdimage && git checkout -b moi/test/bzr

Importer le dépôt bzr upstream dans une branche git spécifique:

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 :

moi@work:~/src/cdimage(moi/test/bzr)$ git bzr import http://people.canonical.com/~cjwatson/bzr/cdimage/mainline ubuntu
Branched 867 revision(s).hing revisions:Finishing stream:Done 9846/98469846
14:29:38 Calculating the revisions to include ...
14:29:38 Starting export of 956 revisions ...
14:29:43 Exported 956 revisions in 0:00:04
moi@work:~/src/cdimage(moi/test/bzr)$ git branch
  bzr/ubuntu
  master
* moi/test/bzr
  ubuntu

Mettre à jour le suivi du dépôt upstream

moi@work:~/src/cdimage(moi/test/bzr)$ git bzr sync bzr/ubuntu
http://people.canonical.com/~cjwatson/bzr/cdimage/mainline is permanently redirected to http://people.canonical.com/~cjwatson/bzr/cdimage/mainline/
14:31:51 Calculating the revisions to include ...
14:31:51 Starting export of 956 revisions ...
14:31:51 Exported 956 revisions in 0:00:00

Intégrer les modifications upstream à une branche locale

moi@work:~/src/cdimage(moi/test/bzr)$ git merge bzr/ubuntu
Updating 5aa84e2..ba4f520
[...]

Paramètre de configuration spécifique à git-bzr

moi@work:~/src/cdimage(moi/test/bzr)$ git config -l
[...]
bzr.ubuntu.bzr=bzr/ubuntu
bzr.bzr/ubuntu.upstream=http://people.canonical.com/~cjwatson/bzr/cdimage/mainline