====== SUBVERSION ====== ===== Client ===== 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 ===== Serveur Subversion sous Apache ===== ==== Installation et configuration ==== 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 : DAV svn Require valid-user SVNParentPath /opt/subversion/depot/ AuthType Basic AuthName "Depot SVN" AuthUserFile /opt/subversion/conf/.htpasswd AuthzSVNAccessFile /opt/subversion/conf/access 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 ==== Créer un nouveau projet ==== 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 * Ajouter les nouveaux utilisateurs dans la section [groups] * Définir les droits pour chaque projet [groups] all = user, utilisateur [projet1:/] @all = rw * = r Explications : * [projet1:/] : Représente le projet * @ : Représente un groupe d’utilisateurs * rw : permet de donner les droits de lecture et d’écriture * r : permet de donner les droits de lecture seul * « * » : Représente tous les utilisateurs non référencés dans le présent fichier. ===== Serveur Subversion sans Apache ===== ==== Installation et configuration ==== Installer le package suivant : subversion === Création d'un premier dépôt SVN === **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 === Configurer le lancement de SVN au démarrage === 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 == Configuration avec inetd == 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 == Configuration avec xinetd == 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