Migration de SVN vers Bazaar

MaWaLe mawale at ubuntu.com
Mer 8 Juil 11:37:07 UTC 2009


Vraiment merci nizar pour cet article de qualité

j'ai beaucoup aimé et je vais le garder : je suis sûr qu'il me servira ;)

Le 8 juillet 2009 12:33, Nizar <nizar.kerkeni at gmail.com> a écrit :

> un autre volet intéressant ;)
>
>
>
> Envoyé par Nizar via Google Reader :
>
>
> Migration de SVN vers Bazaar<http://www.respawner.fr/blog/index.php?post/2009/07/07/Migration-de-SVN-vers-Bazaar%2C-le-cas-gSplit>
> via Planet Ubuntu Francophone - Accueil <http://planet.ubuntu-fr.org/> de
> Respawner le 07/07/09
>
> Migrer d'un système de contrôle de version à un autre peut parfois être
> utile. On peut distinguer deux raisons de migration :
>
>    - le besoin (pour des raisons de gestion du projet), et,
>    - l'envie (par préférence d'utilisation).
>
> Le cas numéro 2 a été le mien. En effet, en développant<http://research.operationaldynamics.com/bzr/java-gnome/hackers/guillaume/>de plus en plus pour
> java-gnome <http://java-gnome.sourceforge.net/>, je me suis pris
> d'affection pour Bazaar <http://bazaar-vcs.org/>. J'ai donc décidé de
> migrer le code de gSplit <https://launchpad.net/gsplit> de SVN à Bazaar *
> sans* perte de données.
>
> Pour rappel (ou pas), *Bazaar* est un système de gestion de versions libre
> et décentralisé<http://fr.wikipedia.org/wiki/Gestion_de_version_d%C3%A9centralis%C3%A9e>qui est développé par
> Canonical <http://www.canonical.com/>. Il est développé avec le langage
> Python <http://www.python.org/> (qui est *très* utilisé par Canonical).
> Avant de me lancer, j'ai passé de long moment sur un moteur de recherche
> bien connu pour être sûr et certain que la migration se ferait sans aucune
> perte.
>
> *Attention !* La suite de l'article a été réalisé grâce à *Ubuntu Server
> 9.04* et avec le PPA de l'équipe de développement de Bazaar. Il faut donc
> ajouter ce dépôt, *non officiel*, à la liste déjà existante. Ceci peut
> donc être dangereux pour votre système.
>
> <http://www.respawner.fr/respawner/public/Divers/bazaar-logo.png>
> 1. Ajout du PPA de Bazaar et installation
>
> Les informations sur le PPA se trouve sur cette page. Pour les utilisateurs
> de Jaunty Jackalope, il faut ajouter les deux lignes suivantes au fichier
> */etc/apt/sources.list* :
> deb http://ppa.launchpad.net/bzr/ppa/ubuntu jaunty main
> deb-src http://ppa.launchpad.net/bzr/ppa/ubuntu jaunty main
>
>
> Avant de mettre à jour la liste des dépôts et de procéder à l'installation,
> il ne faut pas oublier de récupérer la clé du dépôt via la commande
> suivante.
> ~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C6C1EFD
>
> Maintenant, on peut installer les paquets *bzr*, *bzrtools*, *bzr-svn*, *
> ssh* et *openssh-server*.
>
> Petite mise au point avant de se lancer dans les joyeusetés. L'accès en
> lecture au dépôt se fera via le protocole HTTP<http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol>,
> l'accès en écriture se fera via SFTP<http://fr.wikipedia.org/wiki/SSH_file_transfer_protocol>et en plus de tout ceci, on mettra en place
> Loggerhead <https://launchpad.net/loggerhead> (pour voir les commits et le
> dépôt depuis un navigateur web).
> 2. Création du dépôt
>
> Avant de créer le dépôt et d'y intégrer le code, il faut commencer par
> créer un utilisateur qui aura droit d'accès en écriture et qui servira
> notamment à *commiter*.
> ~$ sudo useradd --create-home --home-dir /var/local/bzr --shell
> /usr/lib/sftp-server bzr
> ~$ sudo passwd bzr
> ~$ sudo su
> ~# echo '/usr/lib/sftp-server' >> /etc/shells
>
> On ajoute via les commandes précédentes un utilisateur nommé *bzr*, qui
> aura pour répertoire personnel */var/local/bzr* (la racine du dépôt
> Bazaar) et qui utilisera comme shell un serveur SFTP. Avec la deuxième
> commande, on définit le mot de passe de l'utilisateur, il faut donc veiller
> à entrer un mot de passe plutôt costaud car il sera demandé lors de l'envoi
> d'une branche par exemple.
>
> Maintenant, il faut que le serveur HTTP (Apache<http://fr.wikipedia.org/wiki/Apache_HTTP_Server>dans mon cas) puisse avoir accès au dépôt. On crée et on édite alors le
> fichier */etc/apache2/sites-available/bazaar* puis on y met la ligne
> suivante.
> Alias /bzr/ "/var/local/bzr/"
>
> Enfin, on recharge la configuration du serveur HTTP.
> ~$ sudo a2ensite bazaar
> ~$ sudo /etc/init.d/apache2 force-reload
>
> À partir de maintenant, on doit pouvoir *pusher* une branche afin de
> tester que l'upload et que le download fonctionnent.
> ~$ mkdir test_project
> ~$ bzr whoami "MoiMeme <mon_email at server.org>"
> ~$ cd test_project
> ~/test_project$ echo "public class Test {
>      public static void main(String[] args) {
>          System.out.println("Hello World!");
>      }
> }" > Test.java
> ~/test_project$ bzr init && bzr add
> ~/test_project$ bzr push --remember sftp://
> bzr at server.org/var/local/bzr/test_project
>
> Si ceci fonctionne (normalement oui), on peut essayer de *checkout* la
> branche ensuite.
> ~$ bzr checkout http://www.server.org/bzr/test_project test
> 3. Migration du code du dépôt SVN vers Bazaar
>
> Voilà la partie sensible dans laquelle il faut faire attention pourtant, ce
> n'est pas beaucoup plus bête qu'une ou deux lignes de commande. On commence
> par importer le code dans le dépôt. Ceci va en plus recréer l'historique des
> versions. Comme Bazaar fonctione par branche (chaque branche commence à la
> révsion 1), il se peut que des différences dans la numérotation
> apparaissent.
> ~$ cd /var/local/bzr/
> /var/local/bzr$ sudo bzr svn-import --trees --layout=trunk0
> http://www.server.org/svn/ mon_projet
> /var/local/bzr$ sudo chown -R mon_projet
>
> À ce stade, le code doit normalement être disponible via Bazaar et
> l'historique doit être complet. On peut le vérifier via la commande
> suivante.
> ~$ bzr log http://www.server.org/bzr/mon_projet | more
> 4. Mise en place de Loggerhead
>
> Loggerhead est une sorte de Trac <http://trac.edgewall.org/> mais en plus
> *simple* puisqu'il ne comporte par les fonctions de Wiki, etc... Pour
> l'utiliser, on récupère l'archive de la dernière version.
> ~$ wget
> http://launchpad.net/loggerhead/1.10/1.10/+download/loggerhead-1.10.tar.gz
>
> Il faut extraire l'archive dans */opt/*.
> ~$ mv loggerhead-1.10.tar.gz /opt/
> ~$ cd /opt/ && sudo tar xzvf loggerhead-1.10.tar.gz
> /opt$ rm loggerhead-1.10.tar.gz
>
> Pour lancer Loggerhead facilement, on va copier le fichier *
> /opt/loggerhead/loggerheadd* dans */etc/init.d/* puis le modifier à notre
> guise.  On modifira surtout les quelques variables du fichier comme
> celles-ci :
> SERVE_BRANCHES_CMD=/opt/loggerhead/serve-branches
> LOG_FOLDER=/var/log/loggerhead
> LOG_FILE=$LOG_FOLDER/loggerheadd.log
> URL_PREFIX=/loggerhead
> PORT=4155
> BZRROOT=/var/local/bzr/mon_projet/
>
> Il ne faut pas oublier de configurer le serveur HTTP pour qu'il utilise
> Loggerhead via le module de proxy afin de se simplifier la vie par la suite.
> On édite le fichier */etc/apache2/site-available/loggerhead* puis on y
> insère le code suivant.
> <Location "/loggerhead/">
>     Order allow,deny
>     Allow from all
> </Location>
> ProxyPass /loggerhead/ http://localhost:4155/
> ProxyPassReverse /loggerhead/ http://localhost:4155/
>
> On active les modules de proxy ainsi que le nouveau site. Pour finir par
> recharger la configuration de Apache.
> ~$ sudo a2enmod proxy
> ~$ sudo a2enmod proxy_connect
> ~$ sudo a2enmod proxy_http
> ~$ sudo a2ensite loggerhead
> ~$ sudo /etc/init.d/apache2 force-reload
>
> Maintenant, on donne le droit d'exécution au script et on peut lancer
> Loggerhead.
> ~$ sudo chmod +x /etc/init.d/loggerhead
> ~$ sudo /etc/init.d/loggerhead start
>
> <http://www.respawner.fr/respawner/public/gSplit/loggerhead.png>
> 5. Conclusion
>
> Cet article ne se veut pas comme référence mais fait le point sur une
> technique qui a fonctionné pour moi. Si vous avez des améliorations ou
> d'autres tutoriaux à recommander je suis preneur. Notamment pour utiliser
> Bazaar à la mode *bzr* (en *checkout*) et *bzr+ssh* (en *commit*).
>
>
>
> Ce que vous pouvez faire à partir de cette page :
>
>    - Vous abonner à Planet Ubuntu Francophone - Accueil<http://www.google.com/reader/view/feed%2Fhttp%3A%2F%2Fplanet.ubuntu-fr.org%2Frss.php?source=email>à l'aide de
>    *Google Reader*
>    - Suivre l'actualité de *tous vos sites favoris* avec Google Reader<http://www.google.com/reader/?source=email>
>
>
>
>
> --
> Ubuntu-tn mailing list
> Ubuntu-tn at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-tn
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.ubuntu.com/archives/ubuntu-tn/attachments/20090708/dae5825e/attachment.html>


Plus d'informations sur la liste de diffusion Ubuntu-tn