85 votes

Changer le message de commit SVN rétroactivement ?

J'aimerais réécrire un grand nombre de messages de commit SVN dans une structure différente, par exemple en préfixant une catégorie. De :

"foo" now accepts "bar" format for connection string.

Je veux

core - database - "foo" now accepts "bar" format for connection string.

Existe-t-il un moyen facile de faire cela qui ne no incluent le vidage de l'ensemble du référentiel en utilisant svndumpfilter ?

Je travaille avec TortoiseSVN du côté client, et VisualSVN du côté serveur. (VisualSVN est une enveloppe autour de l'interface classique de TortoiseSVN). svn à qui je peux également parler via la ligne de commande).

98voto

JesperE Points 34356

Oui, les messages de validation peuvent être modifiés. Ils sont implémentés comme des propriétés sur les révisions, de manière similaire aux propriétés de fichiers ordinaires.

Dans la fenêtre de journal de TortoiseSVN, vous pouvez faire un clic droit sur un commit et sélectionner "Editer le message de journal".

59voto

Adam Bellaire Points 42797

Vous pouvez certainement modifier les messages du journal de façon rétroactive, c'est couvert par la loi. dans les FAQ . Je ne sais pas comment fonctionne l'interface de ligne de commande de VisualSVN, mais pour vanilla svn, la commande serait la suivante

svn propset -r N --revprop svn:log "new log message" URL

Si vous voulez faire cela pour toutes les révisions sans vider le référentiel et le recharger, vous pourriez script cette commande pour travailler sur une liste de toutes les révisions. Cela prendrait un certain temps à faire de cette façon, en fonction de la taille de votre référentiel, mais en principe il n'y a aucune raison pour que vous ne puissiez pas le faire, et cela n'implique pas un dump et un rechargement.

Aussi, vanilla SVN a une commande svnlook qui est une sorte d'outil d'administration qui travaille directement avec les fichiers du référentiel. Cet outil ne comprend pas les URLs (vous devez avoir un accès au niveau du système de fichiers du dépôt), mais il est beaucoup plus rapide. La syntaxe est un peu différente, mais vous pouvez modifier les propriétés de la même manière en utilisant cet outil.

26voto

Andrew Aylett Points 16469

Oui, vous pouvez, mais vous devez d'abord l'activer sur le référentiel.

Dans le référentiel, dans le répertoire hooks, se trouve un fichier appelé pre-revprop-change.tmpl. Il a quelques pages de commentaires sur ce qu'il fait, et est configuré pour n'autoriser que les changements des propriétés du journal. Pour l'activer, renommez le fichier en pre-revprop-change et rendez-le exécutable (je suppose qu'il s'agit d'une subversion hébergée par POSIX, si vous utilisez Windows pour l'héberger, vous trouverez peut-être ce message utile).

Une fois que le référentiel le permet, vous pouvez utiliser Tortoise pour changer le message de journal pour un commit à partir du menu de clic droit sur un commit, ou vous pouvez utiliser la ligne de commande.

7voto

Josh Lee Points 53741

Utilisez svn propset sur le svn:log propriété. Exemples dans le livre svn .

2voto

svn propedit -r N --revprop svn:log URL

URL ci-dessus est facultatif si vous êtes déjà dans un répertoire de travail. Un éditeur apparaîtra alors pour que le message puisse être modifié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X