2009-11-09 2 views
6

Я ищу для создания и публикации латексного документа каждый раз, когда я продвигаю кончик определенной ветви.Git Hook: принять меры, когда ветка продвинута

Я смотрю, какой крюк я должен помещать в сценарий сборки и какие условия мне нужно проверить.

+0

Я думал о том, чтобы делать то же самое с Git и LaTeX. Но я боюсь нескольких вещей: 1. Сохранение PDF-файлов сделает мой всплеск разворота очень быстрым. 2. Ошибки LaTeX в источнике. Чтобы убедиться, что все работает правильно, мне придется перетащить архив и проверить PDF. Слишком много работы. – Mica

+0

У меня есть крюк pre-commit, который отклоняет любую фиксацию, которая не будет создавать ошибки. Я проверяю индекс и запускаю свой тест, по существу -draftmode -halt-on-error и просто отклоняю commit, если он не выходит с 0-статусом. Я не сохраняю PDF в репо. – Flame

ответ

14

Возможно немного поздно ... но вы можете узнать, какую ветвь привержен с использованием

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

в вас сценарий, когда вы проверили ветку совершить в нем.

+0

Я получаю «remote: [: 4: master: неожиданный оператор» с этой командой. Фактически это единственный знак «=». Я бы добавил, что для начинающих git, подобных мне, вы должны использовать это так: «если [' git rev-parse -abbrev-ref HEAD' = «master»], то _git инструкции или w/e here_ fi " – Gab

4

Если изменения приходят через push на пульте ДУ, затем на удаленном сервере, вы хотите использовать post-receive крюк (хотя, если вы используете pre-receive, то вы можете отклонить толчок, если, скажем, латекс не может).

Если вы используете локальный репозиторий, вы должны использовать post-commit (или pre-commit, если вы хотите, чтобы иметь возможность отклонить фиксацию).

Крючки задокументированы на странице руководства пользователя git hooks.

+0

В моем post-commit, как я узнаю, в какой филиал было поручено? – Flame

+0

Ой, будет ли этот триггер на слияние или перемотка вперед? – Flame

Смежные вопросы