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, но не из любой другой ветви (= все ветви, кроме новой)». Но даже это дало бы неправильный ответ, если бы произошло слияние новой ветви с какой-либо из старых.

Ответы на вопрос(4)

Ваш ответ на вопрос