Git крючок на Ubuntu сломан - PullRequest
       20

Git крючок на Ubuntu сломан

0 голосов
/ 30 марта 2020

Недавно я получил хук git от кого-то, кто намеревается добавить номер проблемы, который находится в указанном c местоположении названия ветви, к началу всех коммитов. Цель состоит в том, чтобы взять #number из feature/#number-issue. Вот некоторая информация:

➜  .githooks pwd
/home/luctia/.githooks
➜  .githooks git config --global --list
user.name=luctia
user.email=myemail
core.hookspath=/home/luctia/.githooks
➜  .githooks cat commit-msg 
#!/bin/sh

WI=$(git status --branch | grep -iPo "(feature|bug)\/#\d+" | head -1)
WI=$(echo "($WI)" | grep -Po "\d+")

if [[ ! -z "$WI" ]]; then
    WI="#$WI"
    CM=$(cat "$1")
    if [[ ! $CM == *"$WI "* ]]; then
        echo "$WI $CM" > "$1"
    fi
fi

Это, похоже, не работает. Сценарий исполняется для каждого пользователя, так что это не проблема. Я попытался переключиться с sh на bash, и с этим редактированием я выполнил сценарий для файла в репозитории, который добавил число в начало файла, так что я знаю, что это работает. Я не уверен, что git хуки могут выполнять bash файлы, но не имеет значения, использую ли я sh или bash, хотя я хотел бы знать, может ли он запускать bash скрипты .

Я сейчас использую Webstorm для своей IDE, и он там не работает, а также не работает на CLI git. Я понятия не имею, как поступить.

Редактировать: Я почти уверен, что сценарий не выполняется. Когда я добавляю data > /tmp/hook к сценарию, файл не появляется. Я должен измениться с sh на bash.

1 Ответ

0 голосов
/ 30 марта 2020

Проблема заключалась в том, что я пытался сделать эту работу над уже существующим проектом с существующим каталогом .git. Я думал, что изменение конфига с флагом --global просто сработает, но, видимо, конфиг внутри директории .git проекта не изменился, а старый hookspath все еще был там. Когда я его изменил, скрипт начал работать.

...