Quería editar un comentario de registro en el navegador del repositorio y recibí un mensaje de error que indica que no existe un enlace previo al cambio de revprop para el repositorio. Además de tener un nombre aterrador, ¿qué es un gancho previo al cambio de revprop y cómo lo creo?
169
Respuestas:
Básicamente es un script que se inicia antes de que la propiedad no versionada se modifique en el repositorio, para que pueda administrar con mayor precisión lo que sucede en su repositorio.
Hay plantillas en la distribución SVN para diferentes enlaces, ubicados en el subdirectorio / hooks (* .tmpl que debe editar y renombrar dependiendo de su sistema operativo, para activar).
fuente
svnsync
espejo, entonces la secuencia de comandos predeterminada deberá cambiarse, ya que solo permite cambios en svn: log. Svnsync cambia más que esto, así que simplemente puse unexit 0
allí para permitir todos los cambios de propiedad (ya que esto es solo un espejo para mí).pre-revprop-change
en el mismo directorio y hágalo ejecutable para el usuario del servidor web (en Linux).Para Windows, aquí hay un enlace a un archivo por lotes de ejemplo que solo permite cambios en el mensaje de registro (no otras propiedades):
http://ayria.livejournal.com/33438.html
Básicamente, copie el siguiente código en un archivo de texto y asígnele un nombre
pre-revprop-change.bat
y guárdelo en el\hooks
subdirectorio para su repositorio.fuente
Para que Linux permita la edición de un comentario de registro,
pre-revprop-change.tmpl
en elhooks
directorio de su repositoriopre-revprop-change
www-data
)Editado: (gracias a lindes)
0
para el tipo de ediciones que desea permitir.fuente
Aquí está el enlace a la pregunta de desbordamiento de la pila con muchos enlaces comunes Tipos comunes de enlaces de subversión , incluida la fuente original del enlace
pre-revprop-change
para Windows con publicación cruzada aquí.Debe consultar allí ya que pueden mejorar con el tiempo.
fuente
Gracias #patmortech
Y agregué su código que "solo el mismo usuario puede cambiar su código".
fuente
El nombre del script de enlace no da tanto miedo si logra descifrarlo: es el enlace de cambio de propiedad previo a la revisión . En resumen, el propósito de
pre-revprop-change
secuencia comandos enlace es controlar los cambios de las propiedades no versionadas (revisión) y enviar notificaciones (por ejemplo, enviar un correo electrónico cuando se cambia la propiedad de revisión).Hay 2 tipos de propiedades en Subversion:
svn:needs-lock
ysvn:mime-type
) que se pueden configurar en archivos y directorios,svn:log
ysvn:date
) que se establecen en las revisiones del repositorio .Las propiedades versionadas tienen historial y pueden ser manipuladas por usuarios comunes que tienen acceso de lectura / escritura a un repositorio. Por otro lado, las propiedades no versionadas no tienen ningún historial y sirven principalmente para fines de mantenimiento. Por ejemplo, si confirma una revisión, inmediatamente obtiene
svn:date
con la hora UTC de su confirmación,svn:author
con su nombre de usuario ysvn:log
con su mensaje de registro de confirmación (si especificó alguno).Como ya especifiqué, el propósito del
pre-revprop-change
script de enlace es controlar los cambios de las propiedades de revisión. No desea que todos los que tienen acceso a un repositorio puedan modificar todas las propiedades de revisión, por lo que está prohibido cambiar las propiedades de revisión de forma predeterminada. Para permitir que los usuarios cambien propiedades, debe crearpre-revprop-change
enlace.El gancho más simple puede contener solo una línea:
exit 0
. Permitirá que cualquier usuario autenticado cambie cualquier propiedad de revisión y no debe usarse en un entorno real. En Windows, puede usar un script por lotes o un script basado en PowerShell para implementar algo de lógica dentro delpre-revprop-change
enlace.Este script de PowerShell permite cambiar
svn:log
solo propiedades y niega los mensajes de registro vacíos.Este script por lotes permite que solo el usuario "svnmgr" cambie las propiedades de revisión:
fuente
Para usuarios de PC: la extensión .bat no funcionó para mí cuando se usaba en el mecanizado de Windows Server. Usé VisualSvn como Django Reinhardt sugirió, y creó un gancho con una extensión .cmd.
fuente
(Esta solución seguramente tiene inconvenientes, ya que nada está marcado / prohibido. Pero para mi caso, un repositorio local que solo estoy usando, parece funcionar).
fuente