2009-11-09 3 views
6

Je cherche à construire et publier un document latex chaque fois que je fais avancer la pointe d'une branche spécifique. Je regarde quel crochet je devrais mettre mon script de construction et quelles conditions je dois vérifier.Git Hook: Prendre des mesures lorsqu'une branche est avancée

+0

Je pensais faire exactement la même chose avec Git et LaTeX. Mais j'ai peur de certaines choses: 1. le fait de conserver les PDF rendra la taille de mes pensions très rapidement. 2. Erreurs LaTeX dans la source. Pour m'assurer que tout fonctionne correctement, je devrais refaire l'archive et vérifier le PDF. Trop de travail. – Mica

+0

J'ai un hook pré-commit qui rejette tout commit qui ne va pas générer d'erreur. Je vérifie l'index et exécute mon test, essentiellement -draftmode -halt-on-error et je rejette simplement la validation si cela ne se termine pas avec le statut 0. Je ne garde pas le pdf dans le repo. – Flame

Répondre

14

Probablement un peu en retard ... mais vous pouvez savoir quelle branche a été engagée à l'aide

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

en vous script lorsque vous avez coché la branche de commettre en elle.

+0

je reçois "distant: [: 4: maître: opérateur inattendu" avec cette commande. C'est en fait un seul signe '='. Je voudrais ajouter à cela, pour les débutants git comme moi que vous devez utiliser comme ceci: "si [' git rev-parse --abbrev-ref HEAD' = "maître"]; puis instructions _git ou w/e ici fi " – Gab

4

Si des changements sont à venir via un push à distance, puis sur le serveur distant, vous aurez envie d'utiliser le crochet post-receive (bien que si vous utilisez pre-receive vous pouvez alors rejeter la poussée si, par exemple, le latex échoue).

Si vous utilisez votre référentiel local, vous devez utiliser post-commit (ou pre-commit si vous souhaitez pouvoir rejeter la validation).

Les crochets sont documentés dans la page de manuel git hooks.

+0

Dans mon post-commit, comment savoir à quelle branche appartenait? – Flame

+0

Oh aussi, cela déclenchera-t-il une fusion ou une avance rapide? – Flame

Questions connexes