{{tag>programmation}} ---- ====== Bazaar ====== Bazaar est un [[wpfr>logiciel de gestion de versions]] créé par Canonical, il a pour but de garder des traces des différents développements effectués sur un projet communautaire, mais peut également être utilisé à des fins personnelles pour gérer les différentes versions d'un document (LaTeX par exemple). Un des avantages de Bazaar est qu'il est disponible aussi bien sous GNU/Linux que sous Windows. ===== Installation ===== ==== Version standard ==== Bazaar est présent de base dans les dépôts officiels, il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>bzr|bzr]]**. Il existe aussi plusieurs [[#Utilisation d'une interface graphique|interfaces graphiques à Bazaar]]. ===== Utilisation ===== Avant de commencer à utiliser bazaar il est nécessaire de créer une [[;seahorse|clé du shell sécurisée SSH]]. Toutes les indications pour créé cette clé et l'importer sur votre compte launchpad se trouve [[https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair|ici]]. Attention aussi si vous avez activé l'importation automatique d'un autre dépôt comme github vers votre branche launchpad, vous ne pourrez pas pousser votre dépôt local vers cette même branche. Vous rencontrerez une erreur du type : Transport operation not possible: readonly transport ==== Lier votre utilisateur au dépôt ==== Vous devez lier votre utilisateur à votre dépôt avec cette commande à exécuter dans le dossier du dépôt : bzr whoami "Jean D. Public " Cette commande cachera votre email si vous avez peur des spams, sinon utliser celle-ci : bzr whoami "Jean D. Public " Ensuite spécifiez votre identifiant sur launchpad : bzr launchpad-login jeand Vous pouvez commencer à travailler sur votre dépôt. ==== Gérer les dépôts ==== Avant de commencer à utiliser Bazaar, il faut lui demander de créer un nouveau dépôt. mkdir nom_depot cd nom_depot bzr init Dans le répertoire nom_depot, vous aurez alors un dossier caché .bzr, c'est dans ce dossier que Bazaar stockera les différentes révisions et informations du projet. Vous pouvez aussi récupérer un dépôt déjà existant et travailler à partir de celui-ci en faisant bzr branch bzr://... Vous pourrez ensuite (si vous avez les droits suffisants sur le dépôt distant), envoyer vos changements avec bzr push. ==== État du dépôt ==== 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 Liste les commits effectués dans le dépôt. Vous pourrez ainsi voir les modifications qui ont été faites. ==== Gestion des fichiers ==== bzr add nom_fichierCette commande indique à Bazaar que le fichier nommé nom_fichier devra être versionné. bzr mv nom_fichier nouvelle_destinationDéplace le fichier. bzr rm nom_ficherSupprime le fichier (à utiliser avec l'option --keep) si vous voulez supprimer le fichier du dépôt sans le supprimer du disque dur ==== Gestion des commits ==== bzr commit fichier1 fichier2 -m "Description du commit"Crée un commit contenant fichier1 et fichier2. Ces fichiers auront dûs être au préalable ajoutés au dépôt avec la commande bzr add. L'argument -m permet de spécifier une description au commit. Si il n'est pas utilisé, un éditeur de texte s'affichera vous demandant d'entrer une description. bzr commitCréé un nouveau commit contenant tous les changements effectués sur les fichiers suivis (ceux ajoutés avec bzr add). ==== Commandes d'annulation ==== Bazaar dispose de commandes permettant d'annuler des changements effectués. Attention, ces annulations ne sont pas réversibles ! bzr revert fichier1 fichier2Annule les changements effectués dans fichier1 et fichier2 depuis le dernier commit bzr revert fichier1 fichier2 -r numéro_révisionRestaure 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. ====Pousser son dépôt local vers le dépôt distant==== Si votre dépôt est prêt et que vous souhaitez le publier sur le dépôt distant, après avoir [[https://help.launchpad.net/Projects/Registering#Registration|créé votre projet sur launchpad]] vous pouvez le pousser, si c'est un projet privé, avec la commande : bzr push lp:~votre_id/+junk/VOTRE_PROJET ou si c'est un projet public : bzr push lp:~votre_id/VOTRE_PROJET/trunk ===== Utilisation avancée ===== Généralement, quand on utilise Bazaar, on ne travaille pas seul mais en équipe. Voici les principales commandes qui vous aideront à utiliser Bazaar dans de telles situations. Ici, nous supposerons qu'on travaille avec deux dépôts Bazaar distincts nommés respectivement moi et bob. Le dépôt moi est votre dépôt, bob est celui d'une autre personne, admettons qu'il est situé à l'adresse %%bzr://bob.com/bob%%. ==== Gestion des branches ==== Bazaar permet une gestion des branches, et des merge (fusion de branches). Les branches permettent d'avoir simultanément plusieurs versions de votre programme dans votre dépôt Bazaar. C'est très utile, par exemple pour développer une nouvelle fonctionnalité, tout en gardant la branche principale intacte. Ainsi, vous pouvez toujours faire des changements dans la branche principale (corrections de bugs par exemple), tout en développant en parallèle une nouvelle fonctionnalité. bzr branch . test Créé une nouvelle branche nommée "test" à partir du dépôt courant. Vous aurez alors un nouveau répertoire, nommé "test" qui contiendra toutes les sources versionnés du projet. Pour utiliser cette nouvelle branche, il suffit de faire des modifications dans le dossier "test", et de commiter les changements. bzr merge nom_branche Fusionne la branche courante avec la branche nommée "nom_branche". Il se peut qu'il y ait des conflits et que Bazaar ne soit pas capable de les résoudre tout seul. Les conflits apparaissent généralement lors de changements divergents au même endroit dans un fichier. Dans ce cas, Bazaar laisse un marqueur dans le fichier contenant le conflit, et crée trois nouveaux fichiers contenant les différentes versions du fichier. 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." ==== Récupération des changements ==== Imaginons que Bob ait implémenté une nouvelle fonctionnalité. Vous voulez naturellement l'intégrer à votre dépôt. bzr pull bzr://bob.com/bob Cette commande va récupérer les changements effectués par bob, et les merger avec votre dépôt. ===== Intégration de Bazaar dans votre éditeur ===== Bazaar peut être intégré à différents éditeurs, comme [[eclipse|Eclipse]], [[emacs|Emacs]] ou [[vim|Vim]]. Pour plus de détails, voir la section [[#Liens]]. ===== Utilisation d'une interface graphique ===== Plusieurs interfaces graphiques existent pour utiliser Bazaar. On peut citer l'interface par défaut [[bzr-explorer|Bazaar Explorer]]. Pour plus de détails, voir la section [[#Liens]]. ===== Liens ===== * **(en)** [[http://bazaar-vcs.org/|Site officiel]] * **(en)** [[https://launchpad.net/bazaar|Bazaar sur Launchpad.net]] * **(fr)** [[http://bazaar-vcs.org/fr/IntroductionABzr|Introduction à Bazaar]] * **(en)** [[http://wiki.bazaar.canonical.com/3rdPartyTools/#GUI%20Front-ends|Liste d'interfaces graphiques]] * **(en)** [[http://wiki.bazaar.canonical.com/3rdPartyTools#Editor/IDE%20Integration|Liste d'éditeurs pouvant intégrer Bazaar]] ---- //Contributeurs principaux : **[[utilisateurs:geenux|Geenux]]**, [[utilisateurs:7he]].//