<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.paradoxal.org/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Blog Blog - Balise - Subversion</title>
  <link>http://www.paradoxal.org/blog/</link>
  <atom:link href="http://www.paradoxal.org/blog/feed/tag/Subversion/rss2" rel="self" type="application/rss+xml"/>
  <description>Blogblog vous propose  un aide mémoire d'un développeur PHP / Mysql passionné par l'administration Linux. Seza - son autheur - vous met donc à disposition ses astuces, les mauvais moments et difficultés rencontrées mais aussi ses connaissances.
Même si ce blog s'oriente très clairement vers les lignes de code illisibles pour nombreux d'entre vous, actualité, coup de gueule et information sur les technos du moment ne seront pas absentes. Bonne visite !</description>
  <language>fr</language>
  <pubDate>Thu, 21 Aug 2008 19:06:04 +0200</pubDate>
  <copyright>licence creative commons</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Serveur Debian - versionning de fichiers</title>
    <link>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-versionning-de-fichier</link>
    <guid isPermaLink="false">urn:md5:67d10e064c4532d53a0b02b641c9f6fd</guid>
    <pubDate>Tue, 04 Sep 2007 21:22:00 +0200</pubDate>
    <dc:creator>Seza</dc:creator>
        <category>Serveur Debian</category>
        <category>Iptables</category><category>Linux</category><category>Subversion</category><category>SVN</category><category>Utilisateurs virtuels</category>    
    <description>&lt;p&gt;&lt;strong&gt;CHAPITRE 9&amp;nbsp;: Subversion&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Subversion ou autrement dit SVN est un outil bien agréable et utile pour les développeurs ou toutes personnes souhaitant versionnés des fichiers.&lt;/p&gt;


&lt;p&gt;SVN, pour rappel, remplace avantageusement CVS - sûrement le logiciel le plus connu -. Je ne présenterais pas comment on utilise SVN car si vous êtes intéressé et que vous êtes là vous avez déjà trouvez sûrement beaucoup de tutoriaux concernant se sujet.&lt;/p&gt;


&lt;p&gt;Passons à l'installation&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
ALBAN@bebeserv:~$ sudo -i
Password:
bebevserv:~# apt-get update
[...]
bebevserv:~# apt-get upgrade
[...]
apt-get install subversion subversion-tools
[...]
&lt;/pre&gt;


&lt;p&gt;C'est presque terminé&amp;nbsp;!
Il nous faut créer un repository&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# cd /var
bebeserv:/var# mkdir svn
bebeserv:/var# cd svn
&lt;/pre&gt;


&lt;p&gt;Voilà ici sera donc entreposé nos projet.
Créons-en un pour l'exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn# svnadmin --fs-type fsfs create mon_projet
&lt;/pre&gt;


&lt;p&gt;Rien de plus simple.
Maintenant créons un modèle à importer de base dans notre projet avec les clasiques dossier &lt;q&gt;« trunk »&lt;/q&gt;, «&amp;nbsp;branches »}} et &lt;q&gt;« tags »&lt;/q&gt;.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn# mkdir bases
bebeserv:/var/svn# cd bases
bebeserv:/var/svn# mkdir trunk branches tags
bebeserv:/var/svn# cd ..
bebeserv:/var/svn# svn import -m &amp;quot;Import des dossiers commum&amp;quot; /var/svn/bases/ file:///var/svn/mon_projet
&lt;/pre&gt;


&lt;p&gt;Voilà nous avons un dossier &lt;q&gt;« bases »&lt;/q&gt; qui nous resservira sûrement plus tard et las commande &lt;q&gt;« svnadmin »&lt;/q&gt; avait créer un répertoire avec tout ce dont SVN à besoin pour fonctionner et entreposé les fichiers. D'ailleurs nous allons faire un tour dans la configuration de ce projet pour voir rapidement comment sont géré les utilisateurs&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn# cd mon_projet/conf
&lt;/pre&gt;


&lt;p&gt;Paramétrons d'abord le comportement du serveur SVN associé à ce projet&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn/mon_projet/conf# nano svnserve.conf
&lt;/pre&gt;

&lt;pre&gt;
general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Subversion bebeserv.bebenet.local repository
&lt;/pre&gt;


&lt;p&gt;Voilà rien n'est autorisé pour les utilisateur anonyme (même pas la lecture) et les utilisateur authentifié auront le droit d'écrire dans le projet au mieux.
Pourquoi au mieux car l'on peut préciser les droits d'accès utilisateurs par utilisateurs (ou par groupe d'utilisateur) grâce au fichier &lt;q&gt;« passwd »&lt;/q&gt; et &lt;q&gt;« authz »&lt;/q&gt;.&lt;/p&gt;


&lt;p&gt;Passwd pour créer les utilisateurs&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn/mon_projet/conf# nano passwd
&lt;/pre&gt;

&lt;pre&gt;
users]
user = password
user2 = password_2
user3 = password_3
&lt;/pre&gt;


&lt;p&gt;Enregistrez ainsi simplement votre fichier d'utilisateur.&lt;/p&gt;


&lt;p&gt;Authz pour préciser les droits des utilisateurs&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn/mon_projet/conf# nano authz
&lt;/pre&gt;

&lt;pre&gt;
groups]
les_autres = user2, user3

[mon_projet:/]
user = rw
@les_autres = r

[mon_projet:/trunk/dir/section_modifiable]
@les_autres = rw
&lt;/pre&gt;


&lt;p&gt;Voilà un petit exemple assez concis. Tout d'abord &lt;q&gt;« user2 »&lt;/q&gt; et &lt;q&gt;« user3 »&lt;/q&gt; sont mis dans un groupe &lt;q&gt;« les_autres »&lt;/q&gt;. Pour la racine de notre projet  le groupe à le droit unique de lecture. Pour le dossier &lt;q&gt;« trunk/dir/section_modifiable »&lt;/q&gt; le groupe aura le droit d'écrire.
L'utilisateur &lt;q&gt;« user »&lt;/q&gt; quand à lui à le droit d'écriture partout.&lt;/p&gt;


&lt;p&gt;Voilà c'est fini pour la configuration. Il vous reste à démarrer le serveur SVN.
Pour ceci j'ai encore fait un petit script&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/svn/mon_projet/conf#cd /etc/init.d
bebeserv:/etc/init.d# nano svn
&lt;/pre&gt;


&lt;p&gt;Entrez ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#! /bin/sh
set -e

case &amp;quot;$1&amp;quot; in
  start)
        echo -n &amp;quot;Starting svnserve&amp;quot;
        svnserve -d -r /var/svn
        echo &amp;quot;.&amp;quot;
        ;;
  stop)
        echo -n &amp;quot;Terminating svnserve&amp;quot;
        pid=`ps -C svnserve -o pid=`
        kill -HUP $pid
        echo &amp;quot;.&amp;quot;
        ;; 
  restart)
        echo -n &amp;quot;Terminating svnserve&amp;quot;
        pid=`ps -C svnserve -o pid=`
        kill -HUP $pid
        echo &amp;quot;.&amp;quot;
        echo -n &amp;quot;Starting svnserve&amp;quot;
        svnserve -d -r /var/svn
        echo &amp;quot;.&amp;quot;
       ;; 
  *)
        echo &amp;quot;Usage: /etc/init.d/svn {start|stop|restart}&amp;quot;
        exit 1
esac

exit 0
&lt;/pre&gt;


&lt;blockquote&gt;&lt;p&gt;UPDATE&amp;nbsp;: Un grand merci pour la contribution de &quot; le père Léon &quot; qui m'a permi de mettre à jour le script de démarrage, en ajoutant le cas STOP. (le RESTART en découle forcément)&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;&lt;del&gt;A l'heure actuel je n'est pas trouver comment arrêter proprement le serveur.&lt;/del&gt;
Mettez les bons droits d'accès et faîtes un &lt;q&gt;« update-rc.d »&lt;/q&gt; pour lancer ce script au démarrage du serveur.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/init.d# chmod 755 svn
bebeserv:/etc/init.d# update-rc.d svn start 98 2 3 4 5 .
&lt;/pre&gt;


&lt;p&gt;Démarrez finalement le serveur pour finir cette session&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/init.d# /etc/init.d/svn start
&lt;/pre&gt;


&lt;p&gt;N'oubliez pas votre firewall&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/init.d# nano /etc/network/iptables
&lt;/pre&gt;

&lt;pre&gt;
iptables -t filter -A INPUT -i eth0 -p tcp --dport 3690 -d $MYIP -j ACCEPT
iptables -t filter -A OUTPUT -i eth0 -p tcp --dport 3690 -s $MYIP -j ACCEPT
&lt;/pre&gt;

&lt;pre&gt;
bebeserv:/etc/init.d# /etc/init.d/iptables-conf restart
&lt;/pre&gt;


&lt;p&gt;C'est fini =)
A très bientôt&amp;nbsp;!&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/init.d# exit
logout
ALBAN@bebeserv:~$
&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-versionning-de-fichier#comment-form</comments>
      <wfw:comment>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-versionning-de-fichier#comment-form</wfw:comment>
      <wfw:commentRss>http://www.paradoxal.org/blog/feed/rss2/comments/53</wfw:commentRss>
      </item>
    
</channel>
</rss>