Найти название Git-ветки в хуле после обновления

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

Было бы замечательно, если бы я мог узнать, какая ветвь была зафиксирована, чтобы я мог использовать это, чтобы сообщить CruiseControl, какую ветку построить. Есть ли способ получить доступ к имени ветки в хуке после обновления?

1 ответ

Решение

Первым параметром в хуке после обновления является ссылка на ветку в полном объеме - например, я вижу 'refs/head / master' для перехода к 'master master'. Итак, пример подключаемого скрипта, который просто печатает измененную ветку:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref $1)
echo Update pushed to branch $branch
exec git update-server-info

Чтобы проиллюстрировать, что когда вышеперечисленное помещено в файл ловушек / пост-обновления удаленного репозитория, при выполнении push-печати печатается следующее:

% git push origin master
Counting objects: 5, done
Writing objects: 100% (3/3), 247 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
remote: Update pushed to branch master
To /tmp/xx/a
    e02d9cd..ab14a08  master -> master

Новая строка, начинающаяся с "remote:", была выведена нашим хук-скриптом.

Другие вопросы по тегам