SVN (Subversion)

De GioWiki.

(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... »)
(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]

Version actuelle en date du 6 juin 2013 à 12:02

Outils personnels