2009-11-09 14 views
6

Estoy buscando construir y publicar un documento de látex cada vez que avanzo la punta de una rama específica.Git Hook: Actúa cuando se avanza una rama

Estoy mirando qué gancho debería poner mi script de construcción y qué condiciones necesito verificar.

+0

He estado pensando en hacer exactamente lo mismo con Git y LaTeX. Pero tengo miedo de algunas cosas: 1. El mantenimiento de los PDF hará que mi tamaño de repo se hinche muy rápidamente. 2. errores LaTeX en la fuente. Para asegurarme de que todo funciona correctamente, tendría que volver a extraer el archivo y verificar el PDF. Demasiado trabajo. – Mica

+0

Tengo un gancho precompromiso que rechaza cualquier confirmación que no genere errores. Compruebo el índice y ejecuto mi prueba, esencialmente -draftmode -halt-on-error y simplemente rechazo commit si eso no sale con el estado 0. No guardo el pdf en el repositorio. – Flame

Respuesta

14

Probablemente un poco tarde ... pero se puede averiguar qué rama se ha comprometido a mediante el uso de

if [ `git rev-parse --abbrev-ref HEAD` = "master" ]; then 
    ... 
fi 

en que la escritura cuando se examinen la rama de cometer en ella.

+0

obtengo "remote: [: 4: master: inesperado operador" con ese comando. Es en realidad un solo signo '='. Me gustaría añadir a eso, para los principiantes git como yo que tienes que usar eso así: "si [' git rev-parse --abbrev-ref HEAD' = "master"]; luego _git instrucciones o w/e aquí_ fi " – Gab

4

Si los cambios están llegando a través de un push a un mando a distancia, a continuación, en el servidor remoto que querrá utilizar el gancho post-receive (aunque si se utiliza pre-receive entonces se puede rechazar el empuje si, por ejemplo, látex falla).

Si está utilizando su repositorio local, debe usar post-commit (o pre-commit si desea poder rechazar la confirmación).

Los ganchos están documentados en la página del manual git hooks.

+0

En mi postcompromiso, ¿cómo puedo averiguar a qué rama se comprometió? – Flame

+0

Oh, ¿esto se disparará en una fusión o avance rápido? – Flame