Subversion
De Bricosoft.
Cette page concerne l'installation d'un serveur svn dans le userland.
Sommaire |
[modifier] Installation
$ sudo apt-get install subversion
Creation d'une repo :
$ svnadmin create ~/depots
Droits :
$ vim ~/depots/conf/svnserve.conf anon-access = none auth-access = write $ vim ~/depots/conf/passwd jujube = totoche
Lancer le serveur :
$ sudo svnserve -d -r depots
Premier ajout de sources :
svn import -m "mon premier import" chemin/mes_projets svn://localhost/mes_projets
Ne pas créer ~/depots/mes_projets, l'import va le créer.
Vérification (ailleurs dans un autre dossier):
$ svn co svn://localhost/mes_projets verif_checkout_de_mes_projets
[modifier] Production
Mes sites-enabled ont des Directory qui pointent vers une copie de travail (svn co ...) mais les .svn/ sont accessibles depuis le web.
# vim /etc/apache2/conf.d/virtual-host.conf
Rajoutez :
RedirectMatch 404 .*/\.svn(/|$)
L'accès à .svn ou sous-repertoires retournera une erreur de page "non trouvée" (un éventuel attaquant ne pourra pas savoir qu'ils existent).
[modifier] svn:externals
Cherchez pas plus loin, svn:externals vous évitera de perdre du temps. Et comme temps == argent == femmes, vous allez devenir un tombeur (non garanti).
(facultatif) Dans votre working copy :
mkdir vendor cd vendor/
svn propedit svn:externals .
VendorLib/ http://svn.vendor.org/trunk/VendorLib/
svn up svn ci -m "+VendorLib"
Autre exemple en une seule commande (ici avec le versatile Zend Framework) :
$ pwd /home/totoche/mes_projets/my_killer_app/library
Vous souhaitez avoir dans library/ le dossier Zend/ et tous ses objets : Zend/View.php, Zend/Json.php, Zend/Feed.php, etc
$ svn propset svn:externals "http://framework.zend.com/svn/framework/standard/trunk/library/Zend Zend" . Propriété 'svn:externals' définie sur '.' $ ls My
Vous allez vous dire : "quels boulets chez bricosoft.com, faut créer le dossier Zend avant FFS!". Ben nan je vous arrête, palsembleu ! Faites juste un update.
$ svn update Récupération de la référence externe dans 'Zend' A Zend/File A Zend/File/Transfer A Zend/File/Transfer/Adapter ...
$ ls My Zend
preggo.
[modifier] problèmes
Effacer un .project committé par erreur et qui flingue l'import (New Project from SVN dans Eclispe) :
svn del http://svn.myserver.fr/svn/module/trunk/.project
ou :
svn del svn://svn.myserver.fr/svn/module/trunk/.project

