Checkout du repository distant, ceci synchronise les fichiers du serveur SVN vers votre machine dans le répertoire courant :
svn co --username myuser --password 'mypasswd' svn://192.168.0.5/path/trunk/subdir
Commit d'un fichier mis à jour !
svn ci myfile.txt -m comment
Ajout et commit d'un nouveau fichier :
svn add newfile.txt svn ci newfile.txt -m comment
ou
svn ci --username benoit newfile.txt -m comment
Recupération des dernieres versions
svn update
Lister l'historique des révisions
svn log
Connaître les fichiers modifié avant de faire un update :
svn status --show-updates
Afficher le fichier “file.php” à son état de la révision 495.
svn cat file.php -r 495
Pour le restaurer :
svn cat file.php -r 495 > file.php
Recupération de la révision N°6
svn update r6
Installer les paquetages pré-requis (sous Debian):
apt-get install subversion libapache2-svn
Créer le dépôt SVN avec les commandes suivantes :
mkdir -p /opt/subversion/depot mkdir -p /opt/subversion/conf chown www-data:www-data /opt/subversion/depot
Activer, si besoin, le module « dav_svn » avec la commande suivante :
a2enmod dav_svn
Editer le module « dav_svn » :
vim /etc/apache2/mods-enabled/dav_svn.conf
Et insérer à la fin les lignes suivantes :
<Location /svn> DAV svn Require valid-user SVNParentPath /opt/subversion/depot/ AuthType Basic AuthName "Depot SVN" AuthUserFile /opt/subversion/conf/.htpasswd AuthzSVNAccessFile /opt/subversion/conf/access </Location>
Pour créer le premier compte utilisateur :
htpasswd -c /opt/subversion/conf/.htpasswd user
Créer le fichier d’accès :
vim /opt/subversion/conf/access
Insérer le contenu suivant :
[groups] all = user
Recharger la configuration Apache :
/etc/init.d/apache2 restart
Pour créer un nouveau projet :
svnadmin create /opt/subversion/depot/projet1 chown -R www-data:www-data /opt/subversion/depot/projet1
Création du compte utilisateur :
htpasswd /opt/subversion/conf/.htpasswd utilisateur
Editer le fichier d'accès :
vim /opt/subversion/conf/access
[groups] all = user, utilisateur [projet1:/] @all = rw * = r
Explications :
Installer le package suivant :
subversion
Dans l'exemple ci-dessous nous allons créer un premier dépôt nommé mondepot
Créer les repertoires suivants:
/home/subversion/repository/mondepot /home/subversion/admin
Création de mondepot
svnadmin create /home/subversion/repository/mondepot
Modifier le fichier de conf /home/subversion/repository/mondepot/conf/svnserve.conf
en de-commentant et en modifiant les options suivantes
anon-access = read auth-access = write # Fichier contenant les logins et mots de passe password-db = ../../../admin/.passwd # Fichier contenant les droit sur les repository authz-db = ../../../admin/authz
Editer le fichier /home/subversion/admin/authz en ajoutant les lignes suivantes :
[mondepot:/] benoit = rw * = r
Editer le fichier /home/subversion/admin/.passwd en ajoutant les lignes suivantes :
benoit = monmotdepasse
Démarrer le demon SVN ainsi:
svnserve -d --root /home/subversion/repository
Créer l'utilisateur svn
ainsi
useradd -d /home/subversion -s /bin/false svn
Définir le propriétaire
chown -R svn:svn /home/subversion
Modifier le fichier /etc/inetd.conf
en ajoutant la ligne suivante:
svn stream tcp nowait svn /usr/bin/svnserve svnserve -i -r /home/subversion/repository
Si xinetd est utilisé créer le fichier /etc/xinetd.d/svn
avec les options suivantes:
# Begin /etc/xinetd.d/svn service svn { port = 3690 socket_type = stream protocol = tcp wait = no user = svn server = /usr/bin/svnserve server_args = -i -r /home/subversion/repository } # End /etc/xinetd.d/svn
Redémarrer xinet.d
/etc/init.d/xinetd reload