SVN
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Gestion de versions centralisée |
| Commande | svn (client), svnadmin (serveur)
|
| Installation | apt install subversion
|
| Clients GUI | TortoiseSVN, ViewVC (visualiseur web) |
| Voir aussi | VCS, Git |
SVN (Subversion) est un VCS centralisé : un serveur détient le dépôt de référence et les postes de travail en récupèrent une copie de travail. Il conserve la chronologie complète des modifications apportées à un ensemble de fichiers. Encore présent sur des bases de code historiques, il a largement cédé la place à Git pour les nouveaux projets.
Outillage
- Client graphique Windows : TortoiseSVN (tortoisesvn.net) ;
- Visualiseur web des dépôts : ViewVC (viewvc.org).
Binaires principaux : svn, svnadmin, svnlook,
svnserve, svnsync, svndumpfilter, svnversion.
Installation
apt install subversion
Premières opérations
# Récupérer une copie de travail
svn checkout https://svn.example.com/svn/monprojet/trunk monprojet --username utilisateur
# Ajouter un fichier ou un répertoire au suivi
svn add fichier.txt
# Valider les modifications sur le dépôt (avec message obligatoire)
svn commit -m "MAJ fichier.txt"
svn ci -m "MAJ fichier.txt 0.5" # ci = alias de commit
Consulter et comparer
svn status # fichiers modifiés/ajoutés/en conflit dans la copie locale
svn log # historique des révisions
svn blame fichier.txt # auteur et révision de chaque ligne
svn cat fichier.txt # contenu d'un fichier versionné
svn diff fichier.txt # différences par rapport au dépôt
svn list # contenu du répertoire courant
Options fréquentes : --revision (-r) REV, --username,
--password, --non-interactive, --config-dir.
Gérer l'arborescence
svn copy source dest # copier un fichier/répertoire
svn move source dest # déplacer/renommer
svn delete fichier # supprimer
svn mkdir nouveau-rep # créer un répertoire
svn export PATH1 PATH2 # exporter une arborescence propre (sans métadonnées .svn)
svn cleanup # nettoyer une copie de travail bloquée
Conflits et annulation
svn resolved fichier # marquer un conflit comme résolu
svn revert fichier # annuler des changements locaux non commités
svn merge -r HEAD:BON-NUM fichier # revenir sur un changement déjà commité
svn switch URL # basculer la copie de travail vers une autre URL
Import initial
svn import ./mon-projet https://svn.example.com/svn/monprojet/trunk -m "Initial import"