Pour ce faire, vous devez essentiellement avoir des droits d'administrateur (directement ou indirectement) sur le référentiel. Vous pouvez soit configurer le référentiel pour permettre à tous les utilisateurs de le faire, soit modifier le message du journal directement sur le serveur.
Les messages de journal sont conservés dans le référentiel en tant que propriétés attachées à chaque révision. Par défaut, la propriété de message de journal (svn: log) ne peut pas être modifiée une fois qu'elle est validée . En effet, les modifications apportées aux propriétés de révision (dont svn: log en est un) entraînent la suppression définitive de la valeur précédente de la propriété et Subversion essaie de vous empêcher de le faire accidentellement. Cependant, il existe plusieurs façons d'obtenir que Subversion modifie une propriété de révision.
La première façon consiste pour l'administrateur du référentiel à activer les modifications des propriétés de révision. Cela se fait en créant un hook appelé "pre-revprop-change" (voir cette section dans le livre Subversion pour plus de détails sur la façon de procéder). Le hook "pre-revprop-change" a accès à l'ancien message de journal avant qu'il ne soit modifié, il peut donc le conserver d'une manière ou d'une autre (par exemple, en envoyant un e-mail). Une fois les modifications des propriétés de révision activées, vous pouvez modifier le message du journal d'une révision en passant le commutateur --revprop à svn propedit ou svn propset, comme l'un des deux:
$svn propedit -r N --revprop svn:log URL
$svn propset -r N --revprop svn:log "new log message" URL
où N est le numéro de révision dont vous souhaitez modifier le message de journal et URL est l'emplacement du référentiel. Si vous exécutez cette commande à partir d'une copie de travail, vous pouvez laisser l'URL.
La deuxième façon de modifier un message de journal consiste à utiliser svnadmin setlog.
Cela doit être fait en se référant à l'emplacement du référentiel sur le système de fichiers. Vous ne pouvez pas modifier un référentiel distant à l'aide de cette commande.
$ svnadmin setlog REPOS_PATH -r N FILE
où REPOS_PATH est l'emplacement du référentiel, N est le numéro de révision dont vous souhaitez modifier le message de journal et FILE est un fichier contenant le nouveau message de journal. Si le hook "pre-revprop-change" n'est pas en place (ou si vous souhaitez contourner le script de hook pour une raison quelconque), vous pouvez également utiliser l'option --bypass-hooks. Cependant, si vous décidez d'utiliser cette option, soyez très prudent. Vous pouvez contourner des éléments tels que les notifications par e-mail de la modification ou des systèmes de sauvegarde qui gardent une trace des propriétés de révision.