Git hooks - распространяется из удаленного хранилища? - PullRequest
8 голосов
/ 12 августа 2010

В настоящее время я хочу преобразовать существующий SVN-репозиторий в git, а затем использовать Reviewboard для обзоров, прежде чем разрешать толчки.Я только недавно начал использовать git, и я далеко не эксперт в этом вопросе, однако я хотел бы иметь ловушку pre-push, которая запускает «post-review» для отправки изменений в ReviewBoard.У меня есть рабочая ловушка, которая будет делать это, однако похоже, что это не распространяется автоматически на клоны хранилища.Чтение вокруг звучит так, как будто это сделано не для того, чтобы предотвратить навязывание исполняемого кода пользователю, однако это только внутренний репозиторий, и мы хотим применить эту и некоторые другие политики.Есть ли способ заставить git распространять хуки на удаленные клоны, или нам нужно поручить нашим разработчикам запускать что-то, что помещает эти хуки в их локальные репозитории?

1 Ответ

8 голосов
/ 13 августа 2010

Git не имеет встроенной поддержки для передачи хуков между клонами, опционально или нет.У него есть шаблоны по умолчанию, которые вы можете изменить или добавить для новых репозиториев, но они извлекаются из локальной файловой системы (или сетевой файловой системы, в зависимости от обстоятельств).Вполне возможно, что вы могли бы использовать систему для их копирования или поместить сами хуки в репозиторий и попросить, чтобы разработчики правильно сконфигурировали свой клон.

Также возможно запустить желаемый хук на центральном голомхранилище, когда происходит push, но до обновления ссылки.Это может быть сделано с помощью метода предварительного получения или обновления.Приемлемо ли это, зависит от реальной функциональности этой ловушки, которая не ясна из вашего поста.

Чтение http://www.reviewboard.org/docs/manual/dev/faq/ звучит так, как будто вы должны поощрять своих разработчиков использовать ветки тем.Как только изменения одобрены, они могут быть объединены в ветки релиза.Вы могли бы иметь хук обновления, который позволяет только толкать в определенные ветви от привилегированных пользователей, или любые другие критерии.Это также можно сделать с помощью Gitolite, о котором вы можете прочитать по адресу http://progit.org/book/ch4-8.html

. Если вы не привержены Reviewboard, вы можете рассмотреть вариант http://code.google.com/p/gerrit/, который лучше интегрирован с Git и явно поддерживаетэтот рабочий процесс

...