严格的硬石膏构造

时间:2018-09-26 04:16:54

标签: git gitolite

我正在设置Gitolite服务器,但有严格的限制。 Gitolite文档很好,但是我认为如果我正在做的是好的方法,我仍然需要一些建议。

  • 仅限制对母版的访问权限

用户只能访问master分支。他们不能创建任何分支或标签。另外,我也想防止强行推动。用户只能做简单的提交。

我不确定是否可以做到

repo foo

RW+                     =  @sync
RW   master              =  user
  • 推送后致电服务

需要触发触发器或通过其他方式通知服务更改并保持数据库同步。

  • 获取差异

提交后获取diff的更好方法是什么。我需要同步数据库中的所有提交。我能想到的一种方法是使用@sync这样的用户将仓库克隆到tmp dir并运行git diff。有更好的方法来做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以添加自己的update hooks,也可以添加post-receive hook

  

将此行添加到rc块中的%RC文件中(如果尚不存在的话),或者取消注释(如果已经存在并注释掉):

LOCAL_CODE => "$ENV{HOME}/local",
  

将您的钩子放入该目录的子目录“ hooks / common”中:

这种钩子(接收后)可以在其中进行git diff处理:请参见this example

git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev

重点是:无需克隆存储库:每次推送后都会执行钩子。