Git Post Commit Hook Получение номера коммита - PullRequest
1 голос
/ 22 февраля 2011

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

Мне удалось создать скрипт perl для измененияфайл, но мне было интересно, как получить идентификатор фиксации из хука.В настоящее время мой хук выглядит так:

#!/bin/sh
#
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".

#: Nothing
perl -pi -e 's/[A-Za-z0-9+]$/commit-number/' ../../config/commit.git

Я бы хотел, чтобы номер коммита был некой переменной, содержащей идентификатор коммита.

Редактировать: Я понял, что git rev-parse HEAD будетсгенерировать коммит HEAD, который мне нужен, но я не знаю, как использовать это в команде.

1 Ответ

3 голосов
/ 22 февраля 2011

Вы можете использовать вывод команды в виде строки с $(...) или обратными чертами `...`. Таким образом, ваш скрипт может выглядеть так:

 perl -pi -e 's/[A-Za-z0-9+]$/'$( git rev-parse HEAD )/ ../../config/commit.git

или

 perl -pi -e 's/[A-Za-z0-9+]$/'` git rev-parse HEAD `/ ../../config/commit.git

(Я предпочитаю первое, так как оно лучше вложено и более читабельно. И оно лучше печатается на Stackexchange.)

Кстати, вы уверены, что ваше регулярное выражение верно? Теперь он заменяет последний символ, если это алфавитно-цифровой символ или +, на последний идентификатор фиксации. Может быть, + должен быть после ]? (И вы можете использовать s/[a-f0-9]+/, если вы хотите сопоставить только git-commit-ID - нет верхнего регистра и ничего после f.)

...