Bazaar to Git et gestion de version dans Gedit

Quelques notes sur la manière de transformer un projet géré avec bazaar en un projet géré avec git.

Pourquoi envisager de passer à git ? Parce que c'est le VCS décentralisé le plus utilisé (svn restant évidemment majoritaire pour ce qui est des systèmes client-serveur), parce que les services en lignes qui l'utilisent sont efficaces ; Et puis parce que l'intégration avec Gedit est de plus en plus importante. On a maintenant - via un plugin - une visualisation des modifications en cours dans les fichiers ouverts et surtout un marquage visuel des dits fichiers dans l'onglet de l'explorateur de fichiers ; cela se réduit pour le moment à une mise en gras du nom et uniquement lorsque la racine de l'arborescence est un dossier versionné mais j'ai jeté un oeil au code python du plugin et cela pourrait être amélioré très facilement, en ajoutant par exemple une icône emblème non seulement sur les fichiers modfiés mais aussi sur les dossiers parents en remontant jusqu'à la racine. On aurait alors quelque chose qui se rapproche de ce que fait le plugin Subclipse dans Eclipse avec des projets gérés avec SVN.

J'envisage aussi cette migration parce que les outils graphiques bazaar que j'utilise (bzr-gtk) souffrent depuis quelque temps de bugs assez pénibles - même si la plupart de mes manips se font en ligne de commande. Sans doute plusieurs causes à cela : le fait que les équipes de Canonical se focalisent plus sur le développement de bzr-explorer écrit en Qt mais auquel je n'arrive pas à me faire ; et puis sans doute aussi parce que les APIs Gnome / Gtk 3 sont remarquablement stables :-)...

Mais avant d'effectuer la migration, il faut s'assurer de pouvoir convertir mes projets bazaar en projets git. Il faut donc d'abord installer l'extension bazaar fastimport (paquet bzr-fastimport dans Fedora) qui, comme son nom ne l'indique pas, fournit l'extension fast-export qui permet d'exporter un versionning bazaar. Reste ensuite à enchaîner une série de commandes sur le projet à migrer :

# Se placer dans le projet versionné 'bzr-branch'
cd bzr-branch

# Commiter toutes les modifications
bzr add
bzr commit -m "commit before migration"

# Remonter d'un niveau
cd ..

# Faire une branche bazaar 'git-branch' 
# du dépôt original 'bzr-branch'
bzr branch bzr-branch git-branch

# Se placer dans le dossier 'git-branch'
cd git-branch

# Initialiser 'git-branch' comme dépôt git
git init

# Exporter le données de versionning bazaar
# et les importer en tant que versionning git
bzr fast-export --plain | git fast-import

#
git reset HEAD
Exemple de conversion d'un projet « bzr-branch ».

Les premiers essais sont plutôts concluant.

DAVE. Moving from BZR to GIT. MybesInformatik,

JOUANNIC, Thibault. Pour arrêter de galérer avec Git. Miximum,