Pregunta

Estoy buscando una manera de hacer lo siguiente, ya sea en pre-commit o post-commit o de cualquier otra manera.

Esto es lo que necesito para trabajar

  1. El usuario confirma el archivo
  2. Algo corre (gancho u otra cosa)
  3. Que algo más del # 2 debería agregar texto estático al archivo que se está confirmando

Basado en esto http://subversion.open. collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576 Veo que no se recomienda, pero debe haber una forma de agregar texto al archivo en cada confirmación.

Sistema operativo: OS enviados

Motivo por el que lo necesito: proteja todos los archivos de código insertando avisos legales

¿Fue útil?

Solución 3

Hasta ahora, la única solución factible es usar ganchos del lado del cliente de tortoiseSVN:

¿Insertar comentarios automáticamente usando TortoiseSVN?

Desafortunadamente, esto limita a los desarrolladores a usar solo TortoiseSVN. El uso de complementos de Visual Studio, por ejemplo, no funcionará :(

Si alguien encuentra una forma centralizada de cómo hacer esto, publique aquí.

Otros consejos

Mire el cuadro rojo al final de este capítulo del libro SVN:

  

Si bien las secuencias de comandos de enlace pueden hacer casi cualquier cosa, hay una dimensión en la que los autores de secuencias de comandos de enlace deben mostrar moderación: no modifique una transacción de confirmación utilizando secuencias de comandos de enlace. Si bien puede ser tentador usar scripts de enlace para corregir automáticamente errores, deficiencias o violaciones de políticas presentes en los archivos que se están cometiendo, hacerlo puede causar problemas. Subversion mantiene las memorias caché del lado del cliente de ciertos bits de datos del repositorio, y si cambia una transacción de confirmación de esta manera, esas memorias caché se vuelven indetectables. Esta inconsistencia puede conducir a un comportamiento sorprendente e inesperado. En lugar de modificar la transacción, simplemente debe validar la transacción en el enlace previo al compromiso y rechazar el compromiso si no cumple con los requisitos deseados. Como beneficio adicional, sus usuarios aprenderán el valor de los hábitos de trabajo cuidadosos y con mentalidad de cumplimiento.

Me suscribo al punto de vista de que el texto en cuadros rojos debe tomarse en serio.

De acuerdo con ese hilo, podría hacerlo en un enlace previo a la confirmación, pero sería una mala cosa ™. Si absolutamente debe tener texto estático en el archivo, sería mejor que los desarrolladores lo pusieran, y luego use el enlace de precompromiso para verificar que estaba allí. Si el texto estático no existe o es incorrecto, rechaza la confirmación.

¿Qué tal trabajar en esto de otra manera? Usa un robot. Es un poco más trabajo, pero básicamente: acepte la confirmación en el repositorio sin la sección legal requerida y active el robot para que eche un vistazo (o haga que el robot se vea periódicamente).

El robot luego realiza un pago / actualización de los archivos que cuida, verifica sus políticas y avisos legales, agrega automáticamente todo lo que necesita y luego verifica los cambios nuevamente. De esta manera, los cachés de Subversion son felices y los avisos legales son en todos los archivos Developerse eliminará los cambios en el próximo ciclo de actualización / confirmación al igual que cualquier otro cambio. Incluso puede hacer que el robot mantenga actualizada automáticamente la sección legal con la última definición, dependiendo de cuán compleja quiera que sea.

Incluso podría utilizar algo como Hudson para alojar esto en un marco útil.

Puede instalar un enlace en el servidor SVN que ejecutará un script y puede agregar información al archivo, etc.

Aquí hay un poco de información: http://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html

Dicho eso, ¿por qué querrías hacer esto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top