Je voulais passer de bzr à svn pour mon développement chez linutop (pour plusieurs raisons, vitesse, gestion de dépôts, pas de besoin de branches décentralisées, gestion des droits…), la contrainte étant de garder toutes les révisions venant des branches bzr, et d’insérer chacune des branches bzr dans un même dépôt svn. tailor fonctionne vraiment très bien pour ça. Ce n’est pas super rapide, mais comme la conversion n’est à faire qu’une fois, ce n’est pas un gros problème.
Après avoir créé le dépôt svn et avoir commité une architecture initiale (du genre depot/app1/trunk, depot/app2/trunk, etc), il suffit d’utiliser un petit script (à lancer dans /home/you/tailor pour cet exemple), qui récupère chaque révision bzr pour la commiter dans le dépôt svn:
#!/bin/sh ORIG=/path/to/bzr/ DIRS="app1 app2 app3 app4" for D in $DIRS; do # clean the work dir otherwise bzr will not be happy rm -rf work mkdir work # set a tailor conf file for this conversion cat > conf <<EOF [DEFAULT] verbose = True [project] target = svn:target start-revision = INITIAL root-directory = /home/you/tailor/work state-file = tailor.state source = bzr:source subdir = [bzr:source] repository = $ORIG$D/mainline [svn:target] repository = file:///path/to/svn/repo module = /$D/trunk EOF tailor --configfile=conf done
Après un petit moment tout est inclus dans le dépôt svn !