Git-хуки - распространение из удаленного репозитория?

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


person amp    schedule 12.08.2010    source источник
comment
См. раздел stackoverflow.com/questions/3462955/. -- это отвечает на некоторые ваши вопросы.   -  person bstpierre    schedule 13.08.2010


Ответы (1)


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

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

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

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

person cxreg    schedule 13.08.2010