Git получает / обновляет хуки и новые ветки
У меня проблема с крючком «update». В случае новой ветки он получает 0000000000000000000000000000000000000000 как «oldrev». И я не знаю, как справиться с этим делом.
У нас есть требование, чтобы каждое сообщение о фиксации ссылалось на действительную проблему Jira. Поэтому я установил хук обновления в нашем центральном хранилище. Этот хук получает «oldrev» и «newrev». Затем я передаю их в "git rev-list" следующим образом:
git rev-list $oldrev..$newrev
Это дает мне список всех оборотов, которые я затем могу перебрать и сделать все, что мне нужно.
Проблема в том, что когда пользователь выдвигает новую ветку, ловушка получает 0000000000000000000000000000000000000000 как oldrev. А "git rev-list" просто жалуется на:
fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2
Итак, как мне получить список всех оборотов, которые находятся в этой новой ветви? Я довольно долго искал в сети и ничего не нашел. Примеры хуков я нашел либо
не справиться с проблемой и потерпеть неудачу с приведенным выше сообщением об ошибкенеправильно попытаться решить проблему, установив oldrev на "", который возвращает неверные результаты из rev-listпросто сдаваться, когда они сталкиваются с этим oldrevНичто из этого не звучит особенно захватывающе.
Так есть ли у кого-нибудь идеи, как получить правильный ответ в этом случае? Я думал о том, чтобы запросить git для «дай мне все обороты, которые доступны из newrev, но не из любой другой ветви (= все ветви, кроме новой)». Но даже это дало бы неправильный ответ, если бы произошло слияние новой ветви с какой-либо из старых.