Accès au serveur:
svn://192.168.0.3/morvan
NB:
port: 3690
====== Utilisation ======
Rappel: lorsqu'on utilise svn:
===== Checkout =====
Première commande pour créer une copie locale
===== Update =====
Met à jour la copie locale
===== Commit =====
Envoie les modifications sur le dépôt principal. :!: Les bons commentaires font les bons développements!
Pour plus d'info: [[http://www2.lifl.fr/~durif/svn/svn.html|Initation à subversion]]
====== Clients ======
===== En ligne de commande =====
Utiliser svn en ligne de commande: [[http://doc.ubuntu-fr.org/subversion#commandes_de_base|doc.ubuntu-fr.org]].
===== En graphique =====
==== Sous linux ====
Installer [[http://doc.ubuntu-fr.org/rapidsvn|rapidsvn]].
==== Sous windows ====
Chercher tortoise svn.
==== Via eclipse ====
Utiliser subclipse ou [[subversive]].
====== Sauvegarder un dépôt ======
[[http://www.fbollon.net/node/77]]
[[http://blog.pagesd.info/post/2008/12/18/Sauvegarde-d-un-depot-Subversion]]
L'automatisation de la sauvegarde se fait grâce à un srcipt enregistré dans la crontab.
crontab -e
0 18 * * 3-5 /home/msi/.bin/backup_projet.sh
====== Script bash ======
/home/msi/.bin/backup_projet.sh
#!/bin/bash
TIMESTAMP=`date +%Y-%m-%d`
#répertoire de sauvegarde pour Subversion
DUMPDIR=$HOME/tmp_backup_projet
#répertoire du repository Subversion
REPOSVN=/var/svn/morvan
#répertoire ftp
REMOTEDIR=/home/ftp/2009_2010/sauvegarde_projet/
mkdir $DUMPDIR
cd $DUMPDIR
#echo $PWD
#dump du repository svn
svnadmin hotcopy $REPOSVN $TIMESTAMP.dump
if (( $? == 0 )); then
echo "$TIMESTAMP: svn hotcopy ope done" >>/home/msi/backup.log
else
echo "$TIMESTAMP: svn hotcopy ope FAILED" >>/home/msi/backup.log
fi
#compression du dump
tar -zcvf $TIMESTAMP.dump.tar.gz $TIMESTAMP.dump >/dev/null
if (( $? == 0 )); then
echo "$TIMESTAMP: tar ope done" >>/home/msi/backup.log
else
echo "$TIMESTAMP: tar ope FAILED" >>/home/msi/backup.log
fi
chmod 666 $TIMESTAMP.dump.tar.gz
#if (( $? == 0 )); then
# echo "tar ope done"
#fi
#envoi sur le serveur distant
scp $TIMESTAMP.dump.tar.gz maitremsi@192.168.0.9:$REMOTEDIR
if (( $? == 0 )); then
echo "$TIMESTAMP: scp transaction done" >>/home/msi/backup.log
else
echo "$TIMESTAMP: scp transaction FAILED" >>/home/msi/backup.log
fi
#nettoyage
rm -rf $DUMPDIR/$TIMESTAMP.dump
find $DUMPDIR -mtime +30 -exec rm {} \;
exit
===== Explications =====
- On commence par faire une "hotcopy" du dépôt dans un fichier $TIMESTAMP.dump: svnadmin hotcopy $REPOSVN $TIMESTAMP.dump
- On fait une archive $TIMESTAMP.dump.tar.gz tar -zcvf $TIMESTAMP.dump.tar.gz $TIMESTAMP.dump >/dev/null
- On l'envoie sur le serveur via ssh (note: pour automatiser ce transfert, //cf//. plus bas) scp $TIMESTAMP.dump.tar.gz maitremsi@192.168.0.9:$REMOTEDIR
===== Difficultés avec SSH =====
SSH se veut sécurisé, il n'accepte donc pas de mot de passe en argument. On ne peut pas non plus lui passer en redirection (<<). En revanche, il est possible de feinter avec ssh-agent: [[http://doc.ubuntu-fr.org/ssh#utiliser_le_ssh-agent|le résumé cryptique de la feinte]].
En gros:
ssh-keygen -t dsa
ssh-copy-id noob@ip-de-noob
(taper entrée à chaque fois, pas la peine de lire)
PS: ne pas oublier d'installer openssh-server sur la machine distante et d'ouvir le port 22.