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