Parmi les outils de versionnement, il existe Bazaar. Contrairement à [[CransNostalgie/ConcurrentVersionsSystem|CVS]], il s'agit d'un système distribué. C'est une implémentation de [[http://www.gnu.org/software/gnu-arch/|GNU Arch]], qui se veut une évolution de tla. <> = Installation = Sous une distribution Debian (ou Ubuntu), utiliser simplement : {{{ sudo aptitude install bazaar }}} et vérifier que la commande {{{ baz }}} fonctionne. || /!\ '''Version''' ||<#FFFFA0> Si ça ne marche pas, il faut regarder si {{{ bzr }}} fonctionne. Si c'est le cas, il ne s'agit pas de la version de bazaar traitée ici ! || La première chose a faire est ensuite de décliner son identité : {{{ baz my-id "Nom " }}} = Mise en place d'une archive et d'un projet = == Création d'un "repository" (à ne faire qu'une fois) == Tout d'abord, il est souhaitable de créer un répertoire pour contenir les archives locales (équivalent du repository de CVS) : {{{ mkdir ~/{archives} }}} Cependant, contrairement à CVS, il n'est pas obligatoire de stocker toutes ses archives dans le même répertoire. Bazaar stocke ses données privées (équivalent du répertoire {{{$CVSROOT/CVSROOT}}} de CVS) dans le répertoire {{{~/.arch-params}}}, notamment l'identité et les noms et emplacements des archives enregistrées. == Gérer une archive == === Création d'une nouvelle archive === Taper : {{{ baz make-archive nom_archive ~/{archives}/nom_archive }}} || /!\ '''Nomenclature''' ||<#FFFFA0> {{{nom_archive}}} doit être de la forme {{{adresse@email.fr--nom}}}, ou bien {{{adresse@email.fr--année-nom}}}. Par exemple : bazaar@arch.org--2006-toto || || {i} '''Astuce''' ||<#FFFFA0> Pour sélectionner une archive par défaut dans les commandes qui suivent : {{{baz my-default-archive nom_archive}}} || === Création d'un miroir pour son archive === Miroir ftp : {{{ baz make-archive -l -m nom_archive ftp://user@ftp.serveur.org/emplacement/du/mirroir/nom_archive }}} Cela fait un miroir de toute l'archive, avec tous les projets qu'elle contient. En fait, l'adresse du mirroir n'est pas obligée de se terminer par le nom de l'archive (ça peut être un nom arbitraire). On peut aussi utiliser ssh en remplaçant {{{ftp://}}} par {{{sftp://}}} (mais il faut alors indiquer le chemin complet). Et pour exporter les changements : {{{ baz archive-mirror }}} === Importer une archive existante === L'intérêt de faire un miroir de son archive, c'est que tout le monde puisse y accéder et travailler dessus... Par exemple, MumuDvb est développé en utilisant Bazaar. Pour pouvoir utiliser l'archive de MumuDvb localement, il faut exécuter : {{{ baz register-archive ftp://arch.crans.org/tla/dubost/miroir/ }}} Le nom de l'archive est {{{dubost@crans.ens-cachan.fr--2005-braice}}}. Pour voir le contenu de l'archive, on peut faire : {{{ baz abrowse dubost@crans.ens-cachan.fr--2005-braice }}} La complétion sous {{{zsh}}} est très utile ici ! Cela retourne quelquechose de la forme : {{{ dubost@crans.ens-cachan.fr--2005-braice mumudvb mumudvb--mainline mumudvb--mainline--1.0 base-0 .. patch-19 mumudvb--mainline--1.2 base-0 .. patch-14 }}} On peut aussi utiliser une interface web comme !ArchZoom : http://arch.crans.org. === Récupérer le contenu d'une archive === Une fois qu'une archive est enregistrée, on peut récupérer un projet qui s'y trouve, par exemple : {{{ baz get dubost@crans.ens-cachan.fr--2005-braice/mumudvb--mainline mumudvb }}} Cela mettra la dernière version des sources de MumuDvb dans le répertoire {{{mumudvb}}}. == Gérer un projet == === Création d'un nouveau projet === Aller dans le répertoire de travail de son projet : {{{ cd /chemin/vers/mon/projet/ }}} Et faire : {{{ baz init-tree nom_archive/nom_projet--mainline--1.0 }}} || {i} '''Remarque''' ||<#FFFFA0> {{{nom_archive/}}} est optionnel si l'on a sélectionné cette archive par défaut. || || {i} '''Remarque''' ||<#FFFFA0> Il n'y a pas de restriction particulière sur {{{nom_projet}}} (à part ne pas mettre de "--") || La commande {{{ baz lint }}} permet de lister les fichiers du répertoire de travail qui ne font pas parti du projet (au départ, aucun des fichiers n'y appartient). Elle permet aussi de s'assurer que l'on n'a pas loupé une étape. Pour ajouter des fichiers au projet initial, il suffit de faire {{{ baz add nom_fichier }}}. Quand on a fini d'ajouter des fichiers au projet, il suffit de taper {{{ baz import }}} pour créer la première mouture du projet (base). Il faut maintenant utiliser la commande {{{ baz commit }}} pour notifier les changements au repository. === Manipuler un projet via le répertoire de travail === La commande {{{ baz commit }}} sert à faire part des changements des fichiers du répertoire de travail au repository. La commande {{{ baz add nom_fichier }}} sert à ajouter un fichier au projet (il faut ensuite commiter). = Commandes les plus courantes = {{{ # Les plus courantes baz lint # dit quels fichiers du répertoire courant n'appartiennent pas au projet baz commit # notifie les changements au repository local baz archive-miror # pour mettre à jour son miroir baz abrowse # affiche un résumé du contenu d'une archive baz log # Affiche un résumé de l'historique du projet baz get # récupérer le contenu d'une archive baz add # ajoute un fichier au projet (ne pas oublier de commiter après) baz mv # Déplacer/renommer un fichier d'un projet baz rm # Supprimer un fichier d'un projet # Moins courant : baz my-id # décliner son identité baz make-archive # créer une nouvelle archive, ou bien un miroir selon les options baz import # créer un nouveau projet. }}} ---- * CatégoriePagePublique * CatégoriePageNonTerminée : * expliquer ce qu'est un système distribué * installation de !ArchZoom * utilisation des branches