Pregunta

escribieron sobre el espacio en blanco y sugirió la creación de cometer gancho de arrastre que elimina espacio en blanco al final de las líneas y los archivos.

He buscado, pero no he encontrado un claro ejemplo del uso de un gancho pre-commit para modificar los archivos de este tipo. ¿Tiene un script que desea compartir?

¿Fue útil?

Solución

Estoy bastante seguro de que pre- cometer ganchos no se pueden utilizar para modificar la transacción en curso. Sólo puede permitir o denegar la acción comprometerse. En su caso, usted desea examinar los archivos para ver si cumplen con los requisitos de espacio en blanco y el commit fallan con un mensaje de error de utilidad si no lo hacen. Se puede usar un gancho post-commit para hacer lo que se propone, pero implicaría hacer una segunda confirmación desde el script gancho para fijar el mal espacios en blanco en la primera comprometerse. Creo que el compromiso pre-enfoque gancho es mejor.

Otros consejos

Realmente no se puede utilizar ganchos comprometerse a hacer esto en la subversión, porque si el archivo es modificado por el servidor, no va a coincidir con la versión en el cliente. Comprometen ganchos son para eventos de sólo lectura, tales como la generación de mensajes de notificación, o comprobando los archivos para ver si la confirmación debería ser bloqueados.

la documentación relativa a cometer ganchos :

  

Un gancho es un programa que se activa por algún evento del repositorio, como la creación de una nueva revisión o la modificación de una propiedad no versionada. Algunos ganchos (los llamados “ganchos pre”) se ejecutan antes de una operación de depósito y proporcionan un medio por el cual a la vez lo que está a punto de suceder y evitar que suceda en absoluto . Otros ganchos (los ganchos “post”) se ejecutan después de la finalización de un evento del repositorio y son útiles para la realización de tareas que examinan, pero no modifican el repositorio-. Cada gancho se le proporciona suficiente información para decirle qué evento es (o era), los cambios del repositorio específico propuesto (o completo), y el nombre de usuario de la persona que ha activado el evento.

No está seguro de qué plataforma que se encuentra, pero se puede hacer esto con TortoiseSVN , utilizando su ganchos del lado del cliente .

En esencia podría escribir un script que modificar los archivos usando un gancho pre-commit. Creo que esto se hace más correctamente en un script de construcción sin embargo: que realmente no quiere comprometerse código que ni siquiera han compilado o correr! La secuencia de comandos que elimina los espacios potencialmente podrían romper algo, dependiendo del contexto / idioma.

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