Tutoriel Bazaar

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

Intro to Bazaar – YouTube

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/