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
auth-access = write
password-db = passwd
realm = mondeunix.com
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.
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