This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

Journalisation du haut-niveau

À la fois Apache httpd et Subversion svnserve offrent la possibilité de journaliser les opérations Subversion à un haut-niveau. La configuration de chacun des serveurs pour obtenir ce niveau de journalisation se fait différemment, bien sûr, mais les deux produisent des sorties qui respectent une syntaxe uniforme.

Pour active la journalisation de haut-niveau de svnserve, vous n'avez qu'à utiliser l'option --log-file de la ligne de commande quand vous démarrer le serveur, en indiquant en paramètre de l'option le fichier vers lequel svnserve doit écrire la journalisation.

$ svnserve -d -r /chemin/vers/depots --log-file /var/log/svn.log

Activer cette journalisation dans Apache est un peu plus compliqué, mais cela ne reste qu'une extension de la configuration de la journalisation Apache de base (reportez-vous à la section intitulée « Journalisation Apache » pour plus de détails).

Ce qui suit est une liste de messages de journalisation des actions Subversion produite par le mécanisme de journalisation de haut-niveau, suivi par un ou plusieurs exemples des messages de journalisation tels qu'ils apparaissent dans les journaux.

Extraction ou export
checkout-or-export /path r62 depth=infinity
Propagation
commit harry r100
Diffs
diff /path r15:20 depth=infinity ignore-ancestry
diff /path1@15 /path2@20 depth=infinity ignore-ancestry
Parcours d'un répertoire
get-dir /trunk r17 text
Parcours d'un fichier
get-file /path r20 props
Parcours d'une révision d'un fichier
get-file-revs /path r12:15 include-merged-revisions
Parcours des informations de fusion
get-mergeinfo (/path1 /path2)
Verrouillage
lock /path steal
Journalisation
log (/path1,/path2,/path3) r20:90 discover-changed-paths revprops=()
Rejeu d'une révision (svnsync)
replay /path r19
Modification des propriétés de révision
change-rev-prop r50 propertyname
Liste des propriétés de révision
rev-proplist r34
Status
status /path r62 depth=infinity
Bascule vers une nouvelle URL (switch)
switch /pathA /pathB@50 depth=infinity
Déverrouillage
unlock /path break
Mise à jour
update /path r17 send-copyfrom-args

Afin de faciliter le travail des administrateurs qui souhaitent effectuer des traitements sur leurs journaux (pour produire des rapports ou les analyser), le code source de Subversion est fourni avec un module Python (situé à tools/server-side/svn_server_log_parse.py) qui peut être utilisé pour analyser la journalisation produite par Subversion.