Logo Git

Git et les projets Launchpad

git


Git est mon logiciel de gestion de version principal depuis plusieurs années. Je vous en ai déjà parlé ici avec la gestion des sous-modules, là avec l’exclusion de certains fichiers ou encore là avec l’installation de Gitlab. Vous trouverez l’ensemble des articles traitant de git ici. Aujourd’hui, je vais vous parler de l’utilisation de Git avec les dépôts Launchpad. Launchpad est une forge logicielle, tout comme Github ou Gitlab, développé par Canonical et accessible via le logiciel de versioning Bazaar (alias bzr).

Problématique

Jongler entre Bazaar, Mercurial, Git et Subversion en fonction des projets devient vite un casse tête. J’ai donc fait le choix d’utiliser principalement git pour les gouverner tous.

Pour gérer les dépôts Subversion, vous allez pouvoir utiliser le logiciel officiel git-svn mais pour les dépôts Mercurial ou Launchpad rien de vraiment officiel. Pour ma part, j’utilise les extensions développées par Felipe Contreras. Elle permettent l’accès à Mercurial (git-remote-hg) et à Launchpad (git-remote-bzr).

Installation des extensions

Ces extensions sont écrites en Python et nécessitent les bibliothèques mercurial pour l’accès aux dépôt éponyme et bzrlib pour l’accès aux dépôts Launchpad.

# apt-get install python-bzrlib python-hglib

L’installation de ces extensions est très simple. Vous devez télécharger le fichier d’extension et le rendre accessible depuis le PATH.

$ mkdir ~/bin
$ wget https://raw.github.com/felipec/git-remote-bzr/master/git-remote-bzr -O ~/bin/git-remote-bzr
$ wget https://raw.github.com/felipec/git-remote-hg/master/git-remote-hg -O ~/bin/git-remote-hg
$ chmod +x ~/bin/git-remote-bzr ~/bin/git-remote-hg

Vous devrez modifier votre PATH pour intégrer le répertoire bin de votre HOME. Si vous utilisez l’interpréteur de commande bash, la modification de votre fichier ~/.bashrc fera l’affaire puis il vous faudra recharger son contenu.

$ echo "PATH=\$PATH:~/bin" >> ~/.bashrc
$ source ~/.bashrc

Utilisation

La récupération d’une copie du dépôt se fait ensuite presque comme pour les autres projets Git via git clone.

$ git clone bzr::lp:ubuntu/hello
$ git clone bzr::bzr://bzr.savannah.gnu.org/emacs/trunk emacs-trunk

La première commande récupère le dépôt sur Launchpad, alors que la deuxième récupère la branche trunk d’un dépôt Bazaar hébergé sur bzr.savannah.gnu.org.

Je n’ai pas encore fait de push sur ce genre de dépôt, je ne peux donc pas vous en parler pour le moment. Normalement cela devrait se passer comme pour un projet standard mais le jour où ça m’arrive j’éditerai cet article pour vous en informer.

Inclusion d’un bzr en sous-module

Suite à l’article sur l’utilisation des sous-modules dans git, j’ai eu à utiliser le projet moderncv, hébergé sous Launchpad, en tant que sous-module d’un projet git. Le fonctionnement est le même que pour un sous-module git.

$ git submodule add bzr::lp:moderncv moderncv

Le fichier .gitmodules contient les références du sous-module sous la forme suivante :

[submodule "moderncv"]
        path = moderncv
        url = bzr::lp:moderncv

Voila vous en savez autant que moi sur l’utilisation des dépôts Bazaar via git. Si vous avez des questions, suggestions ou autre, les commentaires sont ouverts.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.