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