environnement_prog_svn
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
environnement_prog_svn [2007/05/23 09:16] – créée thierry | environnement_prog_svn [2008/12/24 09:46] (Version actuelle) – thierry | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Un concurrent de CVS | Un concurrent de CVS | ||
+ | Lien: | ||
+ | http:// | ||
Liens: | Liens: | ||
- | [[http:// | + | [[http:// |
- | [[http:// | + | [[http:// |
- | [[http:// | + | [[http:// |
- | [[http:// | + | [[http:// |
# apt-get update | # apt-get update | ||
Ligne 33: | Ligne 35: | ||
===== Quick start ===== | ===== Quick start ===== | ||
- | ==== Preparer le **repository** ==== | ||
- | # mkdir / | + | ==== Repertoire des " |
- | # chown :src / | + | |
- | # chmod g+ws / | + | |
- | # ls -la / | + | |
- | | + | |
+ | Creer le répertoire de stockage, en attribuant le groupe '' | ||
+ | # mkdir / | ||
+ | Creer un lien a la racine, pour clarifier la suite. | ||
+ | # ln -s / | ||
+ | Par exemple, creer un sous-repertoire '' | ||
+ | # mkdir /svn/dev | ||
+ | Créer le user '' | ||
+ | # adduser svn --system --disabled-login --no-create-home --group | ||
+ | On l' | ||
+ | |||
+ | |||
+ | ==== Installer le daemon " | ||
+ | (C'est beaucoup plus cool avec '' | ||
+ | |||
+ | D' | ||
+ | # mkdir / | ||
+ | # chown :svn / | ||
+ | # chmod g+ws / | ||
+ | Installer un scripte comme ça là: ''/ | ||
+ | #!/bin/sh | ||
+ | | ||
+ | NAME=" | ||
+ | DESC=" | ||
+ | | ||
+ | SVNDAEMON="/ | ||
+ | | ||
+ | [ -x $SVNDAEMON ] || exit 0 | ||
+ | | ||
+ | PIDFILE="/ | ||
+ | LISTENPORT=" | ||
+ | SVNPATH="/ | ||
+ | SVNUSER=" | ||
+ | | ||
+ | start() | ||
+ | { | ||
+ | echo -n " | ||
+ | start-stop-daemon --start --quiet --exec " | ||
+ | -c " | ||
+ | echo " | ||
+ | } | ||
+ | | ||
+ | stop() | ||
+ | { | ||
+ | echo -n " | ||
+ | start-stop-daemon --stop --quiet --pidfile " | ||
+ | # effacer le fichier PID (je prefere) | ||
+ | [ ! -e " | ||
+ | echo " | ||
+ | } | ||
+ | | ||
+ | case " | ||
+ | start) | ||
+ | start | ||
+ | ;; | ||
+ | stop) | ||
+ | stop | ||
+ | ;; | ||
+ | restart) | ||
+ | stop | ||
+ | sleep 1 | ||
+ | start | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Usage ... {start|restart|stop} " >&2 | ||
+ | exit 64 | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
+ | Noter que ce daemon " | ||
\\ | \\ | ||
+ | Faire en sorte que ça fonctionne au reboot. | ||
+ | # update-rc.d svnserve-daemon defaults | ||
- | # ln -s / | ||
- | | ||
- | | ||
- | \\ # mkdir /svn/dev | ||
- | # adduser svn-dev --system --disabled-login --no-create-home --group | + | ==== Creer un " |
- | # adduser thierry svn-dev | + | === create |
- | # chown svn-dev: | + | |
- | # chmod g+ws /svn/dev | + | |
- | # ls -la /svn/dev | + | |
- | | + | |
- | ==== Creer un repertoire-projet (ou un repertoire pour des projets ?) ==== | + | == methode 1 == |
+ | $ su | ||
+ | # su -s /bin/bash -c " | ||
- | Ici, le repertoire-projet est **test1**. (ces notions sont aussi flou qu'un répertoire...) | + | == methode 2 == |
+ | $ su | ||
+ | # svnadmin create / | ||
+ | Cela doit appartenir au user '' | ||
+ | # chown -R svn:svn / | ||
- | $ svnadmin create / | + | === password === |
- | $ la / | + | |
- | total 36 | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | ==== Importe un **project**existant dans le repertoire **test1**: ==== | + | A ce stade, si le daemon tourne, la terre entière qui passe par le port TCP (3690) peut modifier le projet!\\ |
+ | Mettre des restrictions: | ||
+ | # cd / | ||
+ | # vi passwd | ||
+ | ... | ||
+ | [users] | ||
+ | thierry | ||
+ | ... | ||
+ | Editer aussi ... | ||
+ | # vi svnserve.conf | ||
+ | ... | ||
+ | [general] | ||
+ | anon-access | ||
+ | auth-access | ||
+ | ... | ||
+ | password-db | ||
+ | Et voila un repository protégé... mais je crois que les mots de passe voyagent en clair (à vérifier) | ||
- | D' | ||
- | $ mkdir sertest | + | |
+ | |||
+ | |||
+ | |||
+ | ==== Importe un " | ||
+ | |||
+ | (Ou simplement créer un " | ||
+ | D' | ||
+ | |||
+ | $ cd ~/tmp | ||
+ | $ mkdir myproject | ||
+ | $ cd myproject | ||
Créeons dans ce répertoire, | Créeons dans ce répertoire, | ||
- | $ cd sertest | ||
$ mkdir trunk | $ mkdir trunk | ||
$ mkdir branches | $ mkdir branches | ||
Ligne 90: | Ligne 170: | ||
Copier les fichiers du projet dans **trunk**: | Copier les fichiers du projet dans **trunk**: | ||
- | $ cp -R ~/ | + | $ cp -Rp ~/ |
- | Enfin, on importe tout cela dans **subversion** : | + | Et enfin, on importe tout cela dans **subversion** : |
$ cd ~/tmp | $ cd ~/tmp | ||
- | $ la sertest | + | $ la myproject |
total 20 | total 20 | ||
| | ||
Ligne 103: | Ligne 183: | ||
| | ||
- | On est bien là ou il faut... le repertoire | + | On est bien là où il faut... le répertoire |
- | $ svn import myproject | + | |
- | | + | |
- | ... snip ... | + | Mot de passe pour ' |
- | Ajout myproject/ | + | |
- | Ajout myproject/branches | + | ... |
- | | + | Révision 1 propagée. |
+ | Rappel: on passe par le daemon qui tourne en ' | ||
+ | $ svn import myproject file:/// | ||
+ | | ||
+ | ... | ||
| | ||
+ | |||
+ | ==== Où sont les mots de passe... ==== | ||
+ | Par la suite, les mots de passe ne seront plus demandé ! Ils sont stockés dans: | ||
+ | ~/ | ||
+ | |||
==== Recuperer des fichiers tout neuf du repository: ==== | ==== Recuperer des fichiers tout neuf du repository: ==== | ||
Ligne 118: | Ligne 207: | ||
Ce mettre dans le répertoire **parent** du projet: | Ce mettre dans le répertoire **parent** du projet: | ||
- | $ svn checkout | + | Via le daemon: |
+ | $ svn checkout | ||
+ | ou plus généralement: | ||
+ | | ||
- | Un repertoire **sertest** est créé avec l' | + | Sans le daemon: |
+ | $ svn checkout file:/// | ||
+ | |||
+ | Un repertoire **myproject** est créé avec tous les fichiers associés (de **trunk**). | ||
Modifions des choses... | Modifions des choses... | ||
Ligne 130: | Ligne 225: | ||
$ svn update | $ svn update | ||
$ svn commit -m " | $ svn commit -m " | ||
- | | + | |
| | ||
| | ||
Ligne 142: | Ligne 237: | ||
Tiens, des infos: | Tiens, des infos: | ||
- | $ svn info file:/// | + | $ svn info file:/// |
| | ||
- | URL : file:/// | + | URL : file:/// |
| | ||
Ligne 153: | Ligne 248: | ||
| | ||
Date de la dernière modification: | Date de la dernière modification: | ||
+ | |||
+ | Ou bien aussi: | ||
+ | $ svn info svn:// | ||
+ | ... | ||
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 199: | 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' | ||
+ | # chmod -R g+ws / | ||
+ | Et | ||
+ | # adduser thierry svn | ||
==== Cas simple ==== | ==== Cas simple ==== | ||
Ligne 227: | 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 ''/ | ||
+ | svn | ||
+ | Puis forcer le rechargement du fichier de conf en faisant: | ||
+ | # ps aux | grep inetd | ||
+ | root 3209 0.0 0.0 | ||
+ | Et enfin: | ||
+ | # kill -HUP 3209 | ||
+ | (ou '' | ||
+ | |||
+ | :!: Si vous ne trouvez pas " | ||
+ | # / | ||
+ | Restarting internet superserver: | ||
+ | |||
+ | Et voila. | ||
===== Sauver et restaurer ===== | ===== Sauver et restaurer ===== | ||
Ligne 243: | Ligne 369: | ||
$ cat app-dump.svn | svnadmin load / | $ cat app-dump.svn | svnadmin load / | ||
+ | |||
+ | |||
+ | ===== Deplacer ===== | ||
+ | Aprés un crash, la bouillie du répertoire **''/ | ||
+ | |||
+ | Mais voila que mes trunks, ne sont plus a jour et un **'' | ||
+ | $ svn update | ||
+ | svn: Impossible d' | ||
+ | svn: Le dépôt ' | ||
+ | Tu m' | ||
+ | svn:// | ||
+ | Alors je fais:\\ | ||
+ | (sous réserve:) | ||
+ | $ svn cleanup | ||
+ | et enfin: | ||
+ | $ svn switch --relocate file:/// | ||
+ | Et voila ! | ||
environnement_prog_svn.txt · Dernière modification : 2008/12/24 09:46 de thierry