我们正在考虑将我们的VCS转换为git或subversion.我更喜欢切换到git,但是subversion有一个很好的功能,我没有在git中看到:每个目录访问控制.
我们目前在cvs中有project1,project2存储库,具有不同的权限.我们想拥有一个单独的存储库,其中两个目录project1和project2具有不同的权限.是否可以使用git,因为它与svn一样?
我知道子模块,它可能实现这一点,但我们的目标是能够通过project1和project2中的更改进行一次提交.
我们主要有IP问题,并希望确保有些人无法读取(而不仅仅是推送)某些目录.那么,是应对挑战还是我必须使用git-svn?
谢谢
它可以通过由gitolite管理的访问(推/拉)中央仓库来实现.
查看其功能.
如果将它与子模块(您知道的)组合在一起,您只需管理每个repo或每个分支访问,并仍然提交project1和project2(如果是subrepo,则提交两个提交:请参阅此问题)
如果您坚持使用一个repo(即使您必须设置可以随其生命周期发展的数据,这应该使它们成为模块的良好候选者),那么gitolite功能包括:
file/dir基于NAME的限制
除了基于分支名称的限制外,gitolite还允许您限制推送更改时可能涉及的文件或目录
dpk在评论中提到最后一个特征(文件/目录名称限制)在conf/example.confGitolite文件中有详细说明.