SVN (Subversion)
De GioWiki.
Gio (discuter | contributions) (Page créée avec « == Création d'un dépôt svn pour un projet == svnadmin create /var/svn/projet Attention à ce que votre projet appartienne bien à svn et non à root chown -R svn:svn /va... ») |
Gio (discuter | contributions) (Activer le tag $Id$) |
||
Ligne 47 : | Ligne 47 : | ||
chown -R svn: /var/svn | chown -R svn: /var/svn | ||
- | Maintenant que nous avons un utilisateur spécifique, pour exécuter SVN au démarrage, il faut créer un script exécutable /etc/init.d/svnserve/ contenant le code : | + | Maintenant que nous avons un utilisateur spécifique, pour exécuter SVN au démarrage, il faut créer un script exécutable /etc/init.d/svnserve/ contenant le code suivant. |
+ | |||
+ | /!\ Attention à partir de Debian 6.0 il faut ajouter l'entête BEGIN INIT INFO pour éviter le problème suivant - insserv: warning: script 'svnserve' missing LSB tags and overrides | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
+ | # | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: svnserve | ||
+ | # Required-Start: $remote_fs $syslog | ||
+ | # Required-Stop: $remote_fs $syslog | ||
+ | # Default-Start: 2 3 4 5 | ||
+ | # Default-Stop: 0 1 6 | ||
+ | # Short-Description: Start and stop svnserve daemon at boot time | ||
+ | # Description: Controls the main subversion server \svnserve\ with default params. | ||
+ | ### END INIT INFO | ||
set -e | set -e | ||
Ligne 124 : | Ligne 136 : | ||
== Rapatriement du répertoire svn == | == Rapatriement du répertoire svn == | ||
svn checkout file:///var/svn/projet/ /var/www/projet/ | svn checkout file:///var/svn/projet/ /var/www/projet/ | ||
+ | |||
+ | = Éditer un message de commit = | ||
+ | Si vous avez oublié de mettre un message à votre commit ou bien si il est incomplet, voici la procédure à suivre pour pouvoir éditer ce log. | ||
+ | |||
+ | Tout d'abord, sur le dépôt de votre projet (sur le serveur svn), allez faire les actions suivantes : | ||
+ | cd /var/svn/projet/hooks/ | ||
+ | cp pre-revprop-change.tmpl pre-revprop-change | ||
+ | chown svn:svn pre-revprop-change | ||
+ | chmod a+x pre-revprop-change | ||
+ | |||
+ | Ensuite, de retour dans votre répertoire habituel de travail, tapez la commande suivante : | ||
+ | svn propset -r <numero_de_revision> --revprop svn:log "<Nouveau message de commit.>" | ||
+ | |||
+ | Vous n'avez plus qu'a supprimer le fichier précédemment copié sur le serveur pour interdire de nouveau l'édition des messages de logs | ||
+ | rm /var/svn/projet/hooks/pre-revprop-change | ||
+ | |||
+ | = Activer le tag $Id$ = | ||
+ | Toutes les modifications suivantes sont à faire sur votre poste de travail et non côté serveur. | ||
+ | |||
+ | Éditer le fichier '''~/.subversion/config''' | ||
+ | |||
+ | Dans la partie miscellany, activez l'option suivante. | ||
+ | [miscellany] | ||
+ | enable-auto-props = yes | ||
+ | |||
+ | Dans la partie auto-props, ajouter la ligne suivante pour prendre en compte cette option pour tous les types de fichiers (*). | ||
+ | [auto-props] | ||
+ | * = svn:keywords=Id | ||
+ | Vous pouvez gérer les tags Id uniquement pour certains types de fichiers. | ||
+ | *.php = svn:keywords=Id | ||
+ | |||
+ | |||
+ | Ensuite, il ne vous reste plus qu'à ajouter cette variable ( $Id$ ) à l'endroit voulu dans votre code. | ||
+ | # $Id: nom_fichier numero_release date heure auteur $ | ||
+ | |||
+ | |||
+ | Par contre, les fichiers déjà existants ne sont pas pris en compte automatiquement. Il faut utiliser svn propset pour préparer les propriétés automatiques des fichiers existants. | ||
+ | |||
+ | Il faut bien sûr commit le fichier préparé pour prendre en compte les modifications. La variable $Id$ sera complétée automatiquement au moment de ce commit. | ||
+ | svn propset svn:keywords Id mon_fichier | ||
+ | svn commit -m "Updating automatic properties" mon_fichier | ||
+ | Informations complémentaires : [http://www.startupcto.com/server-tech/subversion/setting-the-id-tag] | ||
+ | [http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html] |