管理GIT权限 - 多个存储库

Mic*_*ela 5 svn git version-control multiple-repositories

我们有几个开发团队,每个团队开发多个项目(通常为10个以上).我们目前正在使用CVS并评估是否转向SVN或GIT.我倾向于GIT,但我不确定如何有效地管理权限.例如.

我们有Dev Team A,Dev Team B,Dev Team C.每个都有12个开发人员.每个开发团队至少有10个独立的项目.A队可以看到每个人的代码,B队和C队只能看到他们的代码.此外,一些开发人员只具有只读访问权限,而其他人具有完全访

所以在CVS中我们有三个存储库,每个团队一个.所以它就像:

/cvsroot/TeamARepos/project1
/cvsroot/TeamARepos/project2

/cvsroot/TeamBRepos/project1
/cvsroot/TeamBRepos/project2 

/cvsroot/TeamCRepos/project1
/cvsroot/TeamCRepos/project2 
Run Code Online (Sandbox Code Playgroud)

等等.我可以管理整个存储库,并说John Doe只读访问A但写入访问权限B并且无法访问C - 因此我不必让他明确访问每个项目(并且它们经常被添加,所以我不必每次都将每个人添加到每个新项目中.

我对GIT的理解是每个项目都有一个存储库.因此,没有一种真正合乎逻辑的方式可以说'团队A的所有代码都在这里并且这些用户可以写入'并且'团队B的所有代码都在这里,这些用户可以阅读它'并保持它的分离.

我不确定我是否知道如何正确地提出这个问题 - 但我认为转向GIT是一场行政噩梦.

我们还使用ant脚本来检查CVS中的代码,执行构建并部署到服务器.我刚开始看,但我希望蚂蚁在这个意义上与GIT打得很好.

Kal*_*kki 4

我建议使用 git 而不是 svn,因为它的速度、分布式版本控制模型以及总体上合理的做事方式。我们在工作中使用 SVN 已经有几年了,与 git 相比,它真的很痛苦。我看到的 SVN 的唯一优点是它与 Windows 的集成,例如 TortoiseSVN。但前提是您喜欢受 GUI 的约束,并且不愿意学习更强大的命令行。

使用 git,你显然需要gitolite来处理访问控制。使用此模型,您可以为每个项目设置不同的存储库。Gitolite 配置文件允许您将开发人员分组,然后您可以为每个存储库、分支甚至工作树路径设置非常细粒度的访问控制。您可以按照最适合您的方式指定团队或个人的权限。

如果您需要代码审查,您还应该检查gerrit是否是适合您的工具。您不需要两者都使用,使用 gitolite 或 gerrit 即可。

有时人们发现 git 很难学。为此,我建议开发人员阅读一本好书,例如这本书。它也有印刷版。