我目前在 subversion 中的一个单一且组织良好的存储库中收集了我的大部分工作。
当另一个人,比如 X,需要在子项目上协作时,比如 /path/to/my/subproject
,我可以简单地授予 X 在该特定路径中读/写的权限。
从我的角度来看,我仍然拥有结构良好的存储库,除了修改一些简单的权限以使一切都为 X 工作之外不需要做任何其他事情——从 X 的角度来看,他只能访问相关部分。大家都很开心。
然而,在像 git 或 Mercurial 这样的分布式 VCS 中,所有访问权限似乎都是按存储库授予的。
因此,我看不到如何在这些系统中获得与上述类似的功能。如果 X 突然需要访问我原始存储库的部分内容,我似乎必须创建一个全新的存储库。
此外,如果另一个人,比如 Y,需要 X 可以访问的路径中的其他访问权限,我就有问题了。
我能否在分布式 VCS 中获得与我目前在 subversion 中具有不同访问权限的类似功能?如果是,怎么办?
最佳答案
另一种选择是添加 authorization像Gitolite这样的层.
它有授权用户的设置:
- contribute to specific branches一个 Git 存储库。
- 和/或定义personal branches .
但更一般地说,是的,一个项目通常等同于一个存储库,以便该“组件”(“一致的文件集”)独立于其他项目自行发展。
然后,您可以通过 submodules 将这些 repo 加入一个父 repo 中。 .
“Distributed Version Control Systems and the Enterprise - a Good mix?”中解释了缺少身份验证和授权。
关于git - 分布式 VCS 中的不同访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7582255/