Outils pour utilisateurs

Outils du site


environnement_prog_svn

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
environnement_prog_svn [2007/05/23 10:12] thierryenvironnement_prog_svn [2008/12/24 09:46] (Version actuelle) thierry
Ligne 3: Ligne 3:
 Un concurrent de CVS Un concurrent de CVS
  
 +Lien:
 +  http://artis.imag.fr/~Xavier.Decoret/resources/svn/index.html
 Liens: Liens:
  
Ligne 45: Ligne 47:
   # adduser svn --system --disabled-login --no-create-home --group   # adduser svn --system --disabled-login --no-create-home --group
 On l'utilisera par la suite, car il sera le seul autorisé a manipuler directement les repository On l'utilisera par la suite, car il sera le seul autorisé a manipuler directement les repository
 +
  
 ==== Installer le daemon "svnserve" ==== ==== Installer le daemon "svnserve" ====
 +(C'est beaucoup plus cool avec ''inetd''... voir plus loin)\\
 +
 D'abord preparer un repertoire pour recevoir le PID (generer par le user ''svn''). D'abord preparer un repertoire pour recevoir le PID (generer par le user ''svn'').
   # mkdir /var/run/svn   # mkdir /var/run/svn
Ligne 105: Ligne 110:
 Faire en sorte que ça fonctionne au reboot. Faire en sorte que ça fonctionne au reboot.
   # update-rc.d svnserve-daemon defaults   # update-rc.d svnserve-daemon defaults
 +
  
  
 ==== Creer un "repository" ==== ==== Creer un "repository" ====
 +=== create ===
 +
 +== methode 1 ==
 +  $ su
 +  # su -s /bin/bash -c "svnadmin create /svn/dev/myproject" svn
 +
 +== methode 2 ==
 +  $ su
   # svnadmin create /svn/dev/myproject   # svnadmin create /svn/dev/myproject
 Cela doit appartenir au user ''svn''. Cela doit appartenir au user ''svn''.
   # chown -R svn:svn /svn/dev/myproject   # chown -R svn:svn /svn/dev/myproject
 +
 +=== password ===
  
 A ce stade, si le daemon tourne, la terre entière qui passe par le port TCP (3690) peut modifier le projet!\\ A ce stade, si le daemon tourne, la terre entière qui passe par le port TCP (3690) peut modifier le projet!\\
Ligne 185: Ligne 201:
 Par la suite, les mots de passe ne seront plus demandé ! Ils sont stockés dans: Par la suite, les mots de passe ne seront plus demandé ! Ils sont stockés dans:
   ~/.subversion/auth/svn.simple   ~/.subversion/auth/svn.simple
 +
  
 ==== Recuperer des fichiers tout neuf du repository: ==== ==== Recuperer des fichiers tout neuf du repository: ====
Ligne 190: Ligne 207:
 Ce mettre dans le répertoire **parent** du projet: Ce mettre dans le répertoire **parent** du projet:
  
-   $ svn checkout file:///svn/dev/test1/myproject/trunk sertest+Via le daemon: 
 +   $ svn checkout svn://localhost/dev/myproject/trunk myproject 
 +ou plus généralement: 
 +   svn checkout svn://Adresse_IP/dev/myproject/trunk myproject 
 + 
 +Sans le daemon: 
 +   $ svn checkout file:///svn/dev/myproject/trunk myproject
  
-Un repertoire **sertest** est créé avec l'injections de tous les fichiers associés (de **trunk**).+Un repertoire **myproject** est créé avec tous les fichiers associés (de **trunk**).
  
 Modifions des choses... Modifions des choses...
Ligne 202: Ligne 225:
    $ svn update    $ svn update
    $ svn commit -m "j'ai fait des p'tains de modifs!"    $ svn commit -m "j'ai fait des p'tains de modifs!"
-   Envoi          sertest.c+   Envoi          monprojet.c
    Transmission des données .    Transmission des données .
    Révision 3 propagée.    Révision 3 propagée.
Ligne 214: Ligne 237:
 Tiens, des infos: Tiens, des infos:
  
-   $ svn info file:///svn/dev/test1/myproject+   $ svn info file:///svn/dev/myproject
    Chemin : myproject    Chemin : myproject
-   URL : file:///svn/dev/test1/myproject+   URL : file:///svn/dev/myproject
  
    Racine du dépôt : file:///svn/dev/test1    Racine du dépôt : file:///svn/dev/test1
Ligne 225: Ligne 248:
    Révision de la dernière modification : 4    Révision de la dernière modification : 4
    Date de la dernière modification: 2006-09-11 01:39:56 +0200 (lun, 11 sep 2006)    Date de la dernière modification: 2006-09-11 01:39:56 +0200 (lun, 11 sep 2006)
 +
 +Ou bien aussi:
 +   $ svn info svn://10.20.1.111/dev/myproject
 +   ...
  
 Pour recuperer la revision 3 (par exemple), et dans le repertoire **r3**: Pour recuperer la revision 3 (par exemple), et dans le repertoire **r3**:
Ligne 271: Ligne 298:
  
    $ svn switch --relocate FROM_URL TO_URL    $ svn switch --relocate FROM_URL TO_URL
 +
  
 ===== Installer en serveur avec SSH ===== ===== Installer en serveur avec SSH =====
 +
 +==== droits ====
 +Il faut préalablement s'assurer que l'utilisateur aura les droits de lire et/ou modifier le repository. Pour repartir des exemples ci-dessus:
 +  # chmod -R g+ws /svn/dev/myproject
 +Et
 +  # adduser thierry svn
  
 ==== Cas simple ==== ==== Cas simple ====
Ligne 299: Ligne 333:
  
 Et c'est relativement long, et ca demande 3 fois le mot de passe... Et c'est relativement long, et ca demande 3 fois le mot de passe...
 +
 +
 +
 +
 +===== svnserve et inetd =====
 +C'est finalement mieux et plus simple qu'un daemon.\\
 +Editer le fichier ''/etc/inetd.conf'' et inserer:
 +  svn     stream  tcp     nowait  svn     /usr/bin/svnserve   svnserve -i -r /svn
 +Puis forcer le rechargement du fichier de conf en faisant:
 +  # ps aux | grep inetd
 +  root      3209  0.0  0.0   1748   576 ?        Ss   May21   0:00 /usr/sbin/inetd
 +Et enfin:
 +  # kill -HUP 3209
 +(ou ''invoke-rc.d openbsd-inetd reload'')
 +
 +:!: Si vous ne trouvez pas "inetd", c'est peut-être simplement parce que ce daemon ne s'est pas donné la peine de resté chargé (car la conf ne le necessitait pas); donc:
 +  # /etc/init.d/openbsd-inetd restart
 +  Restarting internet superserver: inetd
 +
 +Et voila.
  
 ===== Sauver et restaurer ===== ===== Sauver et restaurer =====
Ligne 315: Ligne 369:
  
    $ cat app-dump.svn | svnadmin load /svn/dev/new-app    $ cat app-dump.svn | svnadmin load /svn/dev/new-app
 +
 +
 +===== Deplacer =====
 +Aprés un crash, la bouillie du répertoire **''/svn''**  a été deporté sur un serveur distant...
 +
 +Mais voila que mes trunks, ne sont plus a jour et un **''svn checkout''** est exclus. Et puis de toutes les maniéres:
 +  $ svn update
 +  svn: Impossible d'ouvrir une session ra_local pour l'URL
 +  svn: Le dépôt 'file:///svn/dev/labo/sudo2/trunk' n'a pu être ouvert
 +Tu m'etonnes: le repository est par là maintenant:
 +  svn://debcave/dev/labo/sudo2/trunk
 +Alors je fais:\\
 +  (sous réserve:)
 +  $ svn cleanup
 +et enfin:
 +  $ svn switch --relocate file:///svn/dev/labo/sudo2/trunk svn://debcave/dev/labo/sudo2/trunk
 +Et voila !
  
environnement_prog_svn.1179915129.txt.gz · Dernière modification : 2007/05/23 10:12 de thierry