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.