我们有几个开发团队,每个团队开发多个项目(通常超过 10 个)。我们目前正在 CVS 中评估是否迁移到 SVN 或 GIT。我倾向于 GIT,但我不确定我们如何有效地管理权限。例如。
我们有开发团队 A、开发团队 B、开发团队 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
等等。我可以管理整个存储库,并说 John Doe 对 A 具有只读访问权限,但对 B 具有写访问权限,对 C 没有访问权限 - 因此我不必让他显式访问每个项目(而且它们经常被添加,所以我不必每次都将每个人都添加到每个新项目中)。
我对 GIT 的理解是每个项目都有一个存储库。因此,没有一种真正合乎逻辑的方式可以说“A 团队的所有代码都在这里,这些用户可以写入”和“B 团队的所有代码都在这里,这些用户可以阅读”并像这样分开。
我不确定我什至知道如何正确地提出这个问题——但我认为迁移到 GIT 是一场管理噩梦。
我们还使用 ant 脚本从 CVS 中检查代码、进行构建并部署到服务器。我刚开始看,但我希望 ant 在这个意义上也能很好地与 GIT 配合使用。