2009-11-09 8 views
6

Sto cercando di costruire e pubblicare un documento in lattice ogni volta che avanzo il suggerimento di un ramo specifico.Git Git: agisci quando un ramo è avanzato

Sto osservando quale hook dovrei inserire il mio script di compilazione e quali condizioni devo controllare.

+0

Ho pensato di fare esattamente la stessa cosa con Git e LaTeX. Ma ho paura di alcune cose: 1. mantenere i PDF renderà le dimensioni del mio repository gonfiare molto rapidamente. 2. Errori LaTeX nella sorgente. Per assicurarmi che tutto funzioni correttamente, dovrei ri-tirare l'archivio e controllare il PDF. Troppo lavoro. – Mica

+0

Ho un hook pre-commit che rifiuta qualsiasi commit che non creerà un errore. Eseguo il checkout dell'indice ed eseguo il mio test, in sostanza -draftmode -halt-on-error e rifiuto appena commit se questo non esce con lo stato 0. Non tengo il pdf nel repository. – Flame

risposta

14

Probabilmente un po 'in ritardo ... ma è possibile scoprire quale ramo si è impegnata a utilizzando

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

in te script quando hai estratto il ramo di impegnarsi in essa.

+0

ottengo "remote: [: 4: master: operatore inatteso" con questo comando. In realtà è un singolo segno "=". Vorrei aggiungere a questo, per i principianti come me che devi usare questo tipo: "if [' git rev-parse --abbrev-ref HEAD' = "master"], poi _git istruzioni o w/e qui_ fi " – Gab

4

Se i cambiamenti sono in arrivo tramite un push ad un telecomando, poi sul server remoto si vorrà utilizzare il gancio post-receive (anche se si utilizza pre-receive allora si può respingere la spinta se, per esempio, non riesce lattice).

Se si utilizza il repository locale è necessario utilizzare post-commit (o pre-commit se si desidera poter rifiutare il commit).

I ganci sono documentati nella pagina man git hooks.

+0

Nel mio post-commit, come faccio a sapere quale filiale è stata commessa? – Flame

+0

Oh, anche questo innescherà in una fusione o in avanzamento veloce? – Flame