SVN

De wiki.nexiat.fr
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

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"

Voir aussi

  • VCS — panorama des systèmes de gestion de versions
  • Git — VCS distribué, standard actuel