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:08] 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 129: Ligne 145:
   password-db = passwd   password-db = passwd
 Et voila un repository protégé... mais je crois que les mots de passe voyagent en clair (à vérifier)  Et voila un repository protégé... mais je crois que les mots de passe voyagent en clair (à vérifier) 
 +
  
  
Ligne 180: Ligne 197:
    ...    ...
    Révision 1 propagée.    Révision 1 propagée.
 +
 +==== Où sont les mots de passe... ====
 +Par la suite, les mots de passe ne seront plus demandé ! Ils sont stockés dans:
 +  ~/.subversion/auth/svn.simple
 +
  
 ==== Recuperer des fichiers tout neuf du repository: ==== ==== Recuperer des fichiers tout neuf du repository: ====
Ligne 185: 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 197: 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 209: 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 220: 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 266: 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 294: 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 310: 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.1179914936.txt.gz · Dernière modification : 2007/05/23 10:08 de thierry