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.

http://fr.wikipedia.org/wiki/Apache_Subversion

Ci-dessous une petit tuto qui vous aidera a mettre en place un dépôt svn:

mkdir /data/svn
sudo apt-get install subversion
sudo svnadmin create /data/svn/mondeunix.com
sudo vi /data/svn/mondeunix.com/conf/svnserve.conf

anon-access = none
auth-access = write
password-db = passwd
realm = mondeunix.com
ATTENTION:
Il ne faut pas mettre d’espace en début de ligne ! Sinon les clients auront une erreur du style « svnserve.conf:12: Option expected svnserve.conf »
sudo vi /data/svn/mondeunix.com/conf/passwd

ruben = passwd

les mots de passe sont en clair dans ce fichier, il convient donc d’en interdire l’accès en lecture à tout le monde (« other ») :

sudo chmod o-r /data/svn/mondeunix.com/conf/authz
sudo chmod o-r /data/svn/mondeunix.com/conf/passwd
Lancement du serveur:
sudo svnserve -d -r /data/svn

Le port par défaut écouté par svnserve est 3690.
sudo addgroup svn –system
sudo adduser svn –system –home /data/svn –no-create-home –ingroup svn
sudo chown -R svn: /data/svn

sudo vi /etc/init.d/svnserver

#!/bin/sh

set -e
if [ -x /usr/bin/svnserve ] ; then
    HAVE_SVNSERVE=1
else
    echo "Svnserve not installed."
    exit 0
fi

. /lib/lsb/init-functions

case "$1" in
    start)
        log_action_begin_msg "Starting SVN server"
        /sbin/start-stop-daemon --start --chuid svn:svn --exec /usr/bin/svnserve -- -d -r /data/svn
        log_action_end_msg $?
        ;;
    stop)
        log_action_begin_msg "Stopping SVN server"
        /sbin/start-stop-daemon --stop --exec /usr/bin/svnserve
        log_action_end_msg $?
        ;;
    force-reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0
sudo chmod +x /etc/init.d/svnserver 

sudo /etc/init.d/svnserver start
sudo update-rc.d svnserve defaults

Créer une copie de travail locale

Commande à exécuter dans le répertoire parent, qui contiendra la copie locale :

svn checkout svn://mon_serveur/projet1

Si l’authentification est requise pour votre dépôt, précisez votre nom d’utilisateur de cette manière :

svn checkout --username nom svn://mon_serveur/projet1

Ceci créera un dossier projet1 contenant les sources du dépôt.

Les commandes suivantes sont à exécuter depuis la copie de travail locale.

Mettre à jour sa copie

Pour récupérer les dernières modifications du dépôt et ainsi mettre sa copie de travail à jour, il suffit de taper :

svn update

Envoyer ses modifications

Pour valider et apporter ses modifications au dépôt, il suffit de :

svn commit -m "Message"

Le message du commit (option -m) est obligatoire, elle permet d’inscrire dans les logs une explication des modifications. Exemple : « Ajout de la fonction xxx dans le fichier xxx, … ». Si vous ne précisez pas cette option, SVN vous ouvre un éditeur de texte (Nano par défaut) afin d’y inscrire ce message.

Si vous voulez changer l’éditeur par défaut (Nano), il faut modifier la valeur de la variable SVN_EDITOR. FIXME

 

Pensez à toujours exécuter un update avant d’exécuter un commit. Ceci évitera beaucoup de conflit.

Ajouter un fichier

Si vous ajoutez un nouveau fichier à votre copie locale, il ne sera pas envoyé au dépôt lors du prochain commit. Il faut déclarer l’ajout d’un fichier avec :

svn add

add déclare l’ajout du fichier au dépôt pour le prochain commit. Pensez donc à commiter après avoir ajouté un fichier.

Supprimer un fichier

Fonctionnant comme pour l’ajout d’un fichier, la déclaration de la suppression pour le prochain commit s’effectue avec :

svn delete

Importer un répertoire local existant

L’importation s’effectue avec la commande :

svn import votre_repertoire URL_svn

« URL_svn » pouvant être un répertoire local, il suffit de faire:

svn import votre_repertoire file:///repertoire_svn

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.