Почему мой крючок Git pre-commit не срабатывает в клонированном репозитории? - PullRequest
4 голосов
/ 10 мая 2011

Я только что написал небольшой хук pre-commit для выполнения моего пользовательского действия.Мой центральный репозиторий находится на сервере Solaris и HTTP включен.

/apps/opt/git/myrepo.git 

Я отредактировал ловушку предварительной фиксации и изменил, как показано ниже:

#!/bin/sh -x
if [ $LOGNAME -ne bala ]; then
   echo  "You are not allowed"
   exit 1;
fi

Если я клонирую этот репозиторий и выполняю действие фиксации, используя другого пользователя, оно не выдает никакого сообщенияи фиксирует это.Почему мой коммит не вызывает хук pre-commit?

Также я мог видеть в моем клонированном репо в каталоге .git/hooks, хука "pre-commit" нет, я вижу только шаблоны по умолчанию.

Может кто-нибудь помочь здесь?

1 Ответ

5 голосов
/ 10 мая 2011

Несколько элементов ответа здесь:

  • Хуки не распространяются через клонов, они являются чисто локальными для репо
  • , если вы клонируете репо, где вы определяете хуквы не найдете указанный хук
  • , если вы хотите запретить коммит в вашем локальном репо, вам нужно pre-commit (как вы это сделали) в локальном репо.Убедитесь, что это исполняемый файл.
  • Если вы хотите заблокировать любой коммит, выполненный кем-либо, кроме 'bala', вам нужен pre-receive на стороне сервера
...