8

我目前正在寻找将现有的 SVN 存储库转换为 git,然后在允许推送之前使用 Reviewboard 进行评论。我最近才开始使用 git 并且远非专家,但是我想做的是有一个 pre-push 钩子,它运行“post-review”以将更改提交到 ReviewBoard。我有一个可以执行此操作的钩子,但是看起来这不会自动传播到存储库的克隆。阅读它听起来好像不是为了防止强制用户执行可执行代码,但这是一个仅限内部的存储库,我们希望强制执行此策略和其他一些策略。有没有办法强制 git 将钩子传播到远程克隆,或者我们是否需要指示我们的开发人员运行一些东西,将这些钩子放在他们的本地仓库中?

4

1 回答 1

8

Git 没有内置支持在克隆之间传输钩子,可选的或其他的。它具有默认模板,您可以为新存储库修改或添加这些模板,但这些模板是从本地文件系统(或网络文件系统,视情况而定)中提取的。您可以使用一个系统来复制它们,或者将钩子本身放入存储库并要求开发人员正确配置他们的克隆。

当推送发生但在更新 ref 之前,也可以在中央裸存储库上运行所需的钩子。这可以通过预接收或更新挂钩来完成。这是否可以接受取决于这个钩子的实际功能,这在你的帖子中并不清楚。

阅读http://www.reviewboard.org/docs/manual/dev/faq/听起来也许您应该鼓励您的开发人员使用主题分支。一旦更改获得批准,它们就可以合并到发布分支中。您可以有一个更新挂钩,它只允许从特权用户或任何其他条件推送到特定分支。这也可以使用 Gitolite 来完成,您可以在http://progit.org/book/ch4-8.html阅读

如果您不致力于 Reviewboard,您可以考虑http://code.google.com/p/gerrit/更好地与 Git 集成并明确支持此工作流程

于 2010-08-13T17:56:19.110 回答