Aide-mémoire pour SVN
pour installer subversion sur MacOsX :
télécharger et installer le package subversion à l'adresse http://www.open.collab.net/downloads/community/
dans le ~/.profile, penser à ajouter une ligne :
export PATH=/opt/subversion/bin:$PATH
récupération d'un projet : du dépôt (repository) sur le serveur SVN vers la copie de travail locale (working copy)
cd ~/MonDepot
svn co "https://svn.enstimac.fr/MonProjet"
co ou checkout est la commande pour récupérer les données du repository SVN et les vérifier.
exporter un projet
Si l'on veut récupérer le contenu d'un projet, mais pas en faire le suivi, il faut l'exporter localement :
svn export "https://svn.enstimac.fr/MonProjet"
exporter le dépôt de travail local
svn export ~/MonDepot ~/MaDestination
SVN va créer le répertoire ~/MaDestination et y exporter le contenu du dépôt local.
mise à jour : mise en cohérence de la version locale avec la version du repository SVN
Avant de modifier un fichier versionné, il faut vérifier qu'il n'a pas été modifié par un tiers.
svn update "~/MonDepot"
envoi des modifications locales vers le repository svn
svn ci "~/MonDepot" -m "[MonProjet] Mon commentaire pour préciser les modifications apportées à MonProjet"
ci ou commit est la commande pour envoyer les données modifiées de la copie de travail locale vers le repository SVN.
exclusion de certains fichiers
Il peut être intéressant d'ignorer certains fichiers, afin de ne pas les prendre en compte dans le suivi de version. Pour cela, il faut définir une propriété svn:ignore.
Par exemple, la commande suivante indique que tous les fichiers ayant "log" pour extension seront ignorés :
svn propset svn:ignore *.log .
ajout de fichiers ou de dossiers
svn add [DesFichiersDesDossiers] -N
l'option -N peut être indiquée pour interdire l'ajout récursif.
ajout de tous les fichiers ou dossiers non-versionnés
svn st | grep "^\?" | awk "{print \$2}" | xargs svn add
suppression de fichiers ou de dossiers
svn rm [DesFichiersDesDossiers] --force
rm, remove, del ou delete permettent de supprimer des fichiers
l'option --force permet de forcer la suppression (même si SVN est mécontent parce que l'on veut supprimer un fichier ou un dossier que l'on vient d'ajouter (par add) )
suppression de fichiers ou de dossiers du serveur SVN
svn rm "https://svn.enstimac.fr/MonProjet/Chemin/Dossier/ouFichierASupprimer" --force
copie d'un fichier ou d'un dossier
svn cp FichierOuDossier Emplacement
déplacement d'un fichier ou d'un dossier
Cela revient à faire une copie et une suppression. Cela permet aussi de renommer un fichier.
svn mv ~/Chemin/Fichier1 ~/Chemin/Fichier2
information sur les modifications
svn st -uv
la commande st ou statut permet de connaître la différence entre la copie de travail locale et la version sur le dépôt SVN.
Pour chaque fichier, SVN indiquera le numéro du dernier commit, le nombre de modifications apportées au fichier, la dernière personne à l'origine de la modification, le chemin du fichier.
Et, au début de cette ligne, l'état de ce fichier :
' ' : aucune modification ;
A : ajouté ;
D : supprimé ;
C : en conflit ;
I : ignoré ;
M : modifié ;
R : remplacé ;
? : non-versionné ;
! : manquant.
Juste à côté, l'état de la version sur le serveur SVN :
' ' : aucune nouvelle version sur le serveur (le fichier local est à jour) ;
* : une version plus récente est disponible sur le serveur.
voir les différences entre la version actuelle et le dernier update
svn diff
options possibles :
-N pour non récursif ;
--force pour forcer la commande ;
--sumarize pour n'obtenir qu'un résumé ;
--no-diff-deleted pour ignorer les fichiers supprimés.
machine arrière
svn revert /Chemin/Dossier/ -R
la commande revert permet de revenir à l'état précédant (parfois utile en cas de conflit)
l'option -R pour un traitement récursif.
svnX
svnX ( http://code.google.com/p/svnx/) est un client graphique, gratuit.
SCPlugin
SCPlugin ( http://scplugin.tigris.org/) est un plugin pour le Finder.