Cómo puedo crear una Plantilla de Mensaje de Confirmación SVN y un Gancho para Verificar


Estoy usando Visual SVN Server y Tortoise SVN (cliente) para el control de código fuente. Me gustaría que todos los desarrolladores para estandarizar en un formato consistente para las notas de registro.

Por ejemplo, quiero que su mensaje de confirmación sea predeterminado...

Sinopsis:

Nombre del desarrollador: (rellenado previamente)

Revisado por:

[Bug Id]:

[Cambiar el Estado del error]:

Problemas conocidos:

Archivos afectados: (rellenado previamente)

En el futuro me gustaría [Bug Id] y [Bug State] para proporcionar la información necesaria para activar una actualización automática del sistema de Seguimiento de Errores. También el Nombre del desarrollador y los archivos afectados deben rellenarse previamente con el usuario svn y los archivos que el usuario está confirmando.

Por favor, envíe cualquier enlace o muestra que pueda tener.

Author: Hardik Mishra, 2009-06-11

4 answers

Tomado de Cómo crear una plantilla SVN Checkin de Tortoise (modificada para adaptarse a versiones más actuales):

La plantilla de registro se puede personalizar según los requisitos del proyecto y se puede usar para implementar un formato de registro estricto.

Agregar esto a su repositorio svn es fácil:

  1. Seleccione una carpeta SVN a la que desea aplicar esto ir a las propiedades de Subversion (haga clic con el botón derechoTortoiseSVN -> Properties)

  2. Seleccione New -> Advanced, luego tsvn:logtemplate desde el lista desplegable llamada Property name.

  3. Agregue las plantillas anteriores (o las suyas propias) al área de texto debajo del cuadro combinado.

  4. Si desea aplicar la propiedad a todos los archivos y carpetas de la jerarquía debajo de la carpeta actual, marque la casilla Recursiva.

  5. Haga clic en OK para agregar esa propiedad a la lista.

  6. Registra todas las carpetas y archivos para que todos los demás miembros de tu equipo puedan usar la misma plantilla.

 30
Author: Justin,
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-06-10 07:20:08

Una forma de hacer esto con la línea de comandos es cambiar la variable de entorno SVN_EDITOR, descrita aquí:

Http://svn.haxx.se/dev/archive-2006-02/0487.shtml

SVN_EDITOR="rm svn-commit.tmp && cp $REPOS/hooks/log.tmpl svn-commit.tmp && vi svn-commit.tmp"
 4
Author: purecharger,
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-03 19:22:10

O, para mayor comodidad de SVN_EDITOR (por ejemplo, enlazando correctamente al elemento de trabajo TFS en el caso de tener que usar SvnBridge), se podría almacenar el siguiente script como ~ / bin / svn_editor:

#!/bin/sh

template_file="${@}"
template_file_new="${template_file}.new"

current_work_item_number_file="${HOME}/tfs_work_item_number_current.txt"
[ -f "${current_work_item_number_file}" ] && work_item=$(cat "${current_work_item_number_file}") || work_item="please fill in!"

# Yes folks, this is the TFS convention (hard, NOT-TO-BE-ALTERED text)
# to properly link to work items via SvnBridge commits!
work_item_prefix_hard_tfs_convention_text="work item: "

work_item_text="${work_item_prefix_hard_tfs_convention_text}${work_item}"

custom_text="${work_item_text}\n\n[this addition above initially placed to ignored content part here,\nto ensure properly abortable empty message by default - please move it to active content as needed]"

sed -e 's/\(will be ignored--\)/\1\n'"${custom_text}"'/' "${template_file}" > "${template_file_new}"

mv -f "${template_file_new}" "${template_file}"

$EDITOR "${@}"

Y luego simplemente hacer

export SVN_EDITOR=~/bin/svn_editor

En ~/.bashrc o algo así. Puntos de bonificación por mantener el archivo de número de elemento de trabajo actualizado incluso desde la página de elemento de trabajo actual como se ve en la interfaz web de Firefox TFS (creo que posiblemente hay una manera de comunicarse con Firefox para obtener títulos de página, etc.). O simplemente haga que este script inicie un primer editor inicial en el archivo de elemento de trabajo persistente y luego deje que ejecute el segundo editor en la plantilla de confirmación personalizada.

 1
Author: JoeRandomUser,
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
2012-04-12 15:32:10

Lo encontré usando: Folder right-click -> Properties -> New... -> Advanced -> Property name: tsvn:logtemplate -> enter a Property value -> OK -> OK.

 1
Author: Safa,
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
2015-12-14 07:21:56