Bazaar (bzr en ligne de commande) est un système de gestion de versions libre sponsorisé par Canonical Ltd. Il appartient à la catégorie des systèmes de gestion de version décentralisée. Ainsi, chaque copie de travail est un dépôt complet, et celui-ci contient tout l’historique.
Le principe général est assez semblable à Git.
Install & set up
L’installation se fait avec :
sudo apt-get install bzr
Identifiez-vous. Vous aurez également besoin de vous créer un compte sur le site hébergant (e.i.: launchpad). Pour cela, suivez le tuto spécifique à la plateforme. Néanmoins, vous aurez besoin de la ligne suivante pour setter votre nom.
bzr whoami "John Doe <john.doe@gmail.com>"
Introduction
Vous pouvez ensuite initialiser un repo comme suit:
mkdir nom_depot cd nom_depot bzr init
Ou en clonez un !
bzr branch lp:~openerp-dev/openobject-addons/trunk-im-al-jem
Etat de votre dépot
bzr info
Cela vous permet de connaitre le parent, la push location, … de votre branch local.
bzr diff bzr diff fichier1 fichier2 bzr diff -r commit1 -r commit2
Permet de comparer 2 versions. Vous pourrez ainsi voir les changements effectués. Si vous avez des changements pas encore commités, la commande bzr diff affichera les modifications effectuées depuis le dernier commit.
bzr status
Permet d’afficher la liste des fichiers modifiés et non commités.
bzr log
Cette ligne vous affichera l’historique des commits effectués dans la branch.
Ajouter des fichiers
bzr add test1.txt
ajoutera les fichiers spécifiés (tapez « . » pour sélectionner tous les fichiers) au prochain commit.
bzr commit -m "Added first line of text"
Commitera vos fichiers sur votre branch (locale) avec le message spécifié.
Pour sauvegarder un commit sur la branch du repo distant, il vous suffit de lancer la commande
bzr push
Si aucune push location n’est indiquée, elle vous sera demandée.
Mettre les branches à jour
Importez les changements d’une branch vers une autre se fait via la commande :
bzr merge branch_name
vous devez être dans la branch à mettre à jour. Le branch_name est le nom de la branch de laquelle vous importez les changements. Si elle n’est pas spécifiée, le parent sera choisi.
Un commit doit être réalisé pour que les changements soient sauvés.
Annulation de commit
bzr revert fichier1 fichier2
Annule les changements effectués dans fichier1 et fichier2 depuis le dernier commit
bzr revert fichier1 fichier2 -r numéro_révision
Restaure fichier1 et fichier2 tel qu’ils étaient lors de la révision spécifiée par l’argument -r. Par sécurité, Bazaar créé un fichier de sauvegarde nommé nom_fichier.~#~ (avec # un nombre). Si vous ne voulez pas de sauvegarde, utilisez l’argument –no-backup.
Résolution de conflits
Pour voir les fichiers contenant des conflits, faites
bzr conflicts
Vous devez alors modifier le fichier pour résoudre le conflit et enlever le marquer. Une fois celà fait, il faut faire
bzr resolve
Si tous les conflits ont étés résolus, Bazaar vous l’indiquera par le message « All conflicts resolved. » Dans la pratique, ouvre le fichiers, supprimez les tags « conflits » de Bazaar, sauvegarder, et retapper bzr resolve
. Il se peut que vous deviez forcer la résolution en spécifiant le nom du fichier à la fin de cette ligne de commande.
Pour reprendre la version parente, et overwriter votre version, tapez
bzr resolve --take-other
bzrTools
Bazaar contient des outils graphiques apportant une aide précieuse. Le plus important (et utile, selon moi), est qdiff !
bzr qdiff
vous montre, de façon colorée et clair les changements effectués (et non commités) sur la branch courante, en distinguant les suppressions, les ajouts et les modifications.
Plus d’infos sur
- http://wiki.bazaar.canonical.com/BzrTools
- http://doc.bazaar.canonical.com/plugins/en/qbzr-plugin.html#qdiff
Liens utiles
http://doc.bazaar.canonical.com/bzr.dev/en/mini-tutorial/
https://doc.openerp.com/7.0/contribute/bazaar_faq/#id1
http://ubuntuswitch.wordpress.com/2009/03/26/version-control-bazaar-for-web-developers/
http://www.olivierpons.fr/2011/01/04/bazaar-tutoriel-et-exemple-concret-utilisation/