¿Cambiar el mensaje de confirmación SVN retroactivamente?


Me gustaría volver a escribir un gran número de mensajes de confirmación SVN en una estructura diferente, por ejemplo, prefijar una categoría. De:

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

Quiero

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

¿Hay una manera fácil de hacer esto que no incluya el volcado de todo el repositorio usando svndumpfilter?

Estoy trabajando con TortoiseSVN en el extremo del cliente, y VisualSVN en el extremo del servidor. (VisualSVN es un contenedor alrededor de classic svn, con el que también puedo hablar a través de la línea de comandos.)

Author: bahrep, 2010-02-02

6 answers

Sí, los mensajes de confirmación se pueden cambiar. Se implementan como propiedades en revisiones, similares a las propiedades de archivo normales.

En la ventana de registro de TortoiseSVN puede hacer clic derecho en una confirmación y seleccionar "Editar mensaje de registro".

 94
Author: JesperE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-02 13:35:14

Ciertamente puede cambiar los mensajes de registro retroactivamente, está cubierto en las preguntas frecuentes. No estoy seguro de cómo funciona la interfaz de línea de comandos para VisualSVN, pero para vanilla svn el comando sería

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

Si desea hacer esto para todas las revisiones sin descargar el repositorio y volver a cargarlo, puede programar este comando para que funcione en una lista de todas las revisiones. Tomaría algún tiempo hacerlo de esta manera, dependiendo del tamaño de su repositorio, pero en principio no hay razón para que no puede hacerlo, y no implica un volcado y recarga.

Además, vanilla SVN tiene un comando svnlook que es una especie de herramienta administrativa que funciona directamente con los archivos del repositorio. Esa herramienta no entiende las URL (debe tener acceso al repositorio a nivel de sistema de archivos), pero es mucho más rápido. La sintaxis es un poco diferente, pero puede modificar las propiedades de la misma manera usando esa herramienta.

 58
Author: Adam Bellaire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-02 13:36:42

Sí, puede, pero primero debe habilitarlo en el repositorio.

En el repositorio, en el directorio hooks, hay un archivo llamado pre-revprop-change.tmpl. Tiene un par de páginas de comentarios sobre lo que hace, y viene configurado para permitir solo cambios en las propiedades del registro. Para habilitarlo, cambie el nombre del archivo a pre-revprop-change y hágalo ejecutable (asumo que es una subversión alojada en POSIX, si está usando Windows para hospedar, puede encontrar este mensaje utilidad).

Una vez que el repositorio lo permita, puede usar Tortoise para cambiar el mensaje de registro de una confirmación desde el menú contextual de una confirmación, o puede usar la línea de comandos.

 26
Author: Andrew Aylett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-02 14:45:04

Use svn propset en la propiedad svn:log. Ejemplos en el libro svn .

 7
Author: Josh Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-02 13:34:49

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

URL lo anterior es opcional si ya estás en un directorio de trabajo. Aparecerá un editor para que el mensaje pueda ser cambiado.

 2
Author: Raffi Khatchadourian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-02 23:11:45

Acaba de llegar a través de este post con el problema exacto, utilizando Tortoise SVN para el cliente y VisualSVN en un servidor de Windows.

Si tiene un mensaje de error "a DAV request failed", eche un vistazo a La respuesta de Andrew Aylett y vaya a editar "pre-revprop-change.tmpl " en el subdirectorio repository hooks.

Una vez hecho esto, golpear "editar mensaje de registro" en el menú contextual finalmente debería funcionar!

 1
Author: Julien B.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:06