Launchpad, SVN, CVS et Git : gérer et versionner ses développements de logiciels ou de documentation (même les cours).

Launchpad et Bazaar

Launchpad est une forge logicielle développée et maintenue par Canonical.

C'est une application web qui procure une aide au développement de logiciels libres. Elle utilise Bazaar (bzr) comme système de gestion de versions. C'est analogue à d'autres systèmes commme CVS ou subversion.

En ligne de commande

Obtenir une clé publique SSH

SSH est, grosso modo, un telnet (très) amélioré et sécurisé. Cela permet de se connecter de façon sécurisée à des machines distantes.

Dans tous les cas, afin de pouvoir mettre des fichiers sur Launchpad, il vous faut y enregistrer une clé publique de cryptage pour SSH. C'est expliqué sur votre profil Launchpad. Voici brièvement :

On installe un client SSH

sudo apt-get install openssh-client

On génère une paire de clés publique/privé, répondez aux questions selon vos convenances (passphrase conseillée)

ssh-keygen -t rsa

Votre clé publique est dans .ssh/id_rsa.pub Il faut la communiquer à launchpad afin qu'il vous authentifie de façon sécurisée. Pour cela, aller dans votre profil sur launchpad et chercher “SSH key”. Dans le cadre “Import key”, copier/coller le contenu de id_rsa.pub et Valider.

Récupérer le code source sur LP

Installer le client bzr :

sudo apt-get install bzr
bzr whoami "Prénom Nom <mon_mail@domaine.fr>"  # On donne son identité à bzr
bzr init                                       # Initialisation (à faire une seule fois)
bzr branch lp:sadms                            # On récupère tout le code source de la branche principale              

Il se peut que le message suivant s'affiche : You have not informed bzr of your Launchpad ID, and you must do this to write to Launchpad or access private data. See “bzr help launchpad-login”. Branched 9 revision(s). Cela signifie tout simplement que vous n'êtes pas authentifié sur launchpad et que vous ne pourrez donc pas uploader vos modifications sur celui-ci.

Uploader les modifications

Seuls les membres de sadms peuvent uploader sur la branche lp:sadms. Les autres peuvent tout à fait uploader vers leur propre branche (lp:mon_nom). On pourra toujours fusionner les deux par la suite.

bzr launchpad-login Launchpad_ID             #on s'identifie en tant qu'utulisateur Launchpad
bzr init
bzr add nom_fichier                            #ajoute des fichiers créées localement devant être versionnés
bzr commit -m 'un commentaire clair et bref'  #enregistre les modifications dans le gestionnaire de version
bzr push lp:adresse_sur_lp                    #uploade tout le travail sur la branche LP

http://wiki.bazaar.canonical.com/fr/IntroductionABzr

Avec une interface graphique

Installer le client bzr et bzr-explorer

sudo apt-get install bzr bzr-explorer

http://doc.ubuntu-fr.org/bzr-explorer

CVS

Exemple avec la récupération du code se sadms sur SF

Ouvrir un session sur le CVS de SF (pas de mot de passe, donc presser sur entrée) :

cvs -d:pserver:anonymous@sadms.cvs.sourceforge.net:/cvsroot/sadms login

Télécharger le code source :

cvs -z3 -d:pserver:anonymous@sadms.cvs.sourceforge.net:/cvsroot/sadms co -P sadms

Git

Git est un logiciel de gestion de versions décentralisé. Créé par Linus Torvalds, le créateur du noyau Linux, il est distribué selon les termes de la licence GNU/GPL version 2.

Nous utilisons ici GitHub. C'est un service web d'hébergement et de gestion de développement de logiciels, utilisant le programme Git. GitHub propose des comptes professionnels payants, ainsi que des comptes gratuits pour les projets de logiciels libres.

Nous allons ici récupérer le code d'un dépôt, le modifier et le mettre dans le gestionnaire de version.

Pour la configuration initiale de git avec github, voir ici : http://help.github.com/linux-set-up-git/ (il existe des versions pour Windows ou Mac)

Nous allons créer un répertoire local de travail, initialiser git :

mkdir nom_depot
cd nom_depot
git init

On récupère le code source du projet qui nous intéresse sur github :

git clone git://github.com/rboulle/cmirem.git

Une fois les fichiers modifiés, ou d'autres créées, vous souhaitez les envoyer dans le gestionnaire de versions sur github. Pour cela vous devez en avoir le droit (voir avec le responsable du projet afin qu'il vous ajoute sur github en tant que contributeur).

D'abord vous devez faire un “commit” en local avant d'envoyer les modifications sur le serveur. La commande suivant commite tout ce qui a été modifié (inutile de faire 'commit add' avant)

git commit -a -m 'un message indiquant en une ligne ce qui a été fait'

On ajoute un alias pour le dépôt distant puis on pousse (push) les modifications :

git remote add github git@github.com:rboulle/cmirem.git
git push github master

SVN

Subversion (en abrégé svn) est un logiciel de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mêmes concepts. Plus d'informations sur : http://fr.wikipedia.org/wiki/Apache_Subversion

SVN permet de gérer son code sources et de développer à plusieurs. Vous trouverez dans cette section deux parties : mise en place du serveur et utilisation à l'aide d'un client

Installer un serveur SVN

Travail effectué sous Débian 6.0 (transposable à Ubuntu)

Installation des paquets nécessaires

aptitude install subversion apache2 libapache2-svn

Configuration d'apache

vim /etc/apache2/mods-enabled/dav_svn.conf

<Location /projet>
Dav svn
SVNPath /var/svn/projet1
Ajouter les restrictions pour l'ecriture
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
   <LimitExcept GET PROPFIND OPTIONS REPORT>
       Require valid-user
   </LimitExcept>
</Location>

Enregistrer, puis relancer apache

/etc/init.d/apache2 restart

Création d'un répertoire pour le projet

mkdir -p /var/svn/projet1
svnadmin create /var/svn/projet1/
chown -Rf www-data:www-data /var/svn/projet1/

Création d'un fichier pour l'identification des utilisateurs (création de l'utilisateur lapin)

htpasswd -cs /etc/apache2/dav_svn.passwd lapin
chown -Rf www-data:www-data /etc/apache2/dav_svn.passwd

pour ajouter un utilisateur par la suite

htpasswd -s /etc/apache2/dav_svn.passwd lapin2

On relance apache :

/etc/init.d/apache2 restart

Le svn est accessible en lecture pour tous en http://monserveur/projet

Pour l'écriture, voir la suite .

Utilisation d'un client

Côté client:

Récupération svn co http://192.168.0.1/projet copielocale

mise a jour: 1) Entrer a la racine du projet (ici copie locale) 2) taper svn update

Ajouter un fichier au depot:

svn add fichier ou répertoire 

ou si tout votre projet est dans le répertoire trunk (nom usuel), faire dans le répertoire parent de trunk :

svn add trunk/*

faire un commit :

svn --username lapin commit -m "ajout et modifs"

Mettre à jour votre dépôt local à partir du dépôt SVN :

svn update

On trouve pas mal d'informations intéressantes sur ce site

 
developper/systemes_gestion_version.txt · Dernière modification: 2014/10/23 08:30 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki