我正在调查使用Git进行公司代码管理的可能性。我在这方面有两个问题:
TOP_DIR
的存储库,它包含两个子目录:TOP_DIR/DIR_GLOBAL
和TOP_DIR/DIR_SECURE
。我想在DIR_SECURE
上只向少数团队成员提供读/写访问权限,但对DIR_GLOBAL
几乎每个人都有完整的读/写权限。这些方面的任何指针都将受到高度赞赏。
您可以使用Git挂钩在中央服务器上实现日志记录。 Gitolite对用户管理有好处,并确保调用任何钩子。使用gitolite,您可以控制谁有权访问哪些repos,而钩子可以记录用户事件。
对于从另一个用户的回购副本克隆回购的人,您总是会遇到问题。分散,所以这不是一个万无一失的解决方案,但如果没有用户允许任何人复制他们的回购,你可以确保每个人都使用中央服务器一个开始。
如果钩子不够,请查看http://sitaramc.github.com/gitolite/triggers.html Gitolite确实支持“触发器”,它将为您提供有关您可以记录的内容的更多信息。
感谢各种输入,这就是我最终做的事情: - (1)在服务器上,我创建了3种类型的帐户。 (a)sudo'ers帐户(b)admin for repository - linux group控制存储库访问(c)git用户帐户shell = / usr / bin / git-shell(因此无法直接登录) - 添加它们与相同的Linux组。
密码邮寄给每个团队成员。每当他们访问系统时,ssl库都会在/etc/log/auth_user.log中记录他们的访问权限。这些日志还不够,但有些地方从哪里开始。
为什么我没有选择gitolite:gitolite的目的是控制存储库的选择部分的访问。此外,该产品未经过积极测试(因为我可以看到许多错误仍然存在),因此,它不会记录访问权限,也不能区分黑白克隆或任何其他API。我正在考虑改变git代码以使其更加冗长。
您可以使用git-measure来获取每个用户的统计信息。