git - 分布式 VCS 中的不同访问权限

标签 git version-control mercurial dvcs

我目前在 subversion 中的一个单一且组织良好的存储库中收集了我的大部分工作。
当另一个人,比如 X,需要在子项目上协作时,比如 /path/to/my/subproject,我可以简单地授予 X 在该特定路径中读/写的权限。
从我的角度来看,我仍然拥有结构良好的存储库,除了修改一些简单的权限以使一切都为 X 工作之外不需要做任何其他事情——从 X 的角度来看,他只能访问相关部分。大家都很开心。

然而,在像 git 或 Mercurial 这样的分布式 VCS 中,所有访问权限似乎都是按存储库授予的。
因此,我看不到如何在这些系统中获得与上述类似的功能。如果 X 突然需要访问我原始存储库的部分内容,我似乎必须创建一个全新的存储库。
此外,如果另一个人,比如 Y,需要 X 可以访问的路径中的其他访问权限,我就有问题了。

我能否在分布式 VCS 中获得与我目前在 subversion 中具有不同访问权限的类似功能?如果是,怎么办?

最佳答案

另一种选择是添加 authorizationGitolite这样的层.

它有授权用户的设置:

但更一般地说,是的,一个项目通常等同于一个存储库,以便该“组件”(“一致的文件集”)独立于其他项目自行发展。
然后,您可以通过 submodules 将这些 repo 加入一个父 repo 中。 .

Distributed Version Control Systems and the Enterprise - a Good mix?”中解释了缺少身份验证和授权。

关于git - 分布式 VCS 中的不同访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7582255/

相关文章:

version-control - TFS 项目结构 - 场景指导

Git + 大数据集?

mercurial - 如何在 Mercurial 中仅提交文件重命名,而不提交实际内容更改

具有目录范围的 Git 配置,包含多个存储库

git - 即使在 git add 之后,更改也不会提交

git - 为什么我看到一个已删除的远程分支?

version-control - 如何将.hgignore添加到我的Mercurial文件夹?

mercurial - hg rebase 中止失败 : "unknown revision"

Git merge 分支之间的提交

git - 将子模块列表添加到 git