Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制用户访问Assembla或其他SVN托管服务上的存储库_Svn_Hosting - Fatal编程技术网

限制用户访问Assembla或其他SVN托管服务上的存储库

限制用户访问Assembla或其他SVN托管服务上的存储库,svn,hosting,Svn,Hosting,在阅读了一些相当积极的评论之后,我一直在研究Assembla SVN托管解决方案。但是,我的要求之一是限制用户访问我设置的某些存储库。原因是我们有一个承包商,我想将他们的代码签入到一个特定的汇编存储库,但是我不想授予他们访问我设置的其他代码存储库的权限 在这方面,我能看到的唯一限制是将用户设置为编辑、查看或所有模式,这似乎不太符合我的要求。试图阅读汇编常见问题解答,但找不到有关此问题的任何信息 我们的入门包提供1个空间和3个用户 那么,使用Assembla服务是否有可能做到这一点?如果没有,是否

在阅读了一些相当积极的评论之后,我一直在研究Assembla SVN托管解决方案。但是,我的要求之一是限制用户访问我设置的某些存储库。原因是我们有一个承包商,我想将他们的代码签入到一个特定的汇编存储库,但是我不想授予他们访问我设置的其他代码存储库的权限

在这方面,我能看到的唯一限制是将用户设置为编辑、查看或所有模式,这似乎不太符合我的要求。试图阅读汇编常见问题解答,但找不到有关此问题的任何信息

我们的入门包提供1个空间和3个用户

那么,使用Assembla服务是否有可能做到这一点?如果没有,是否有免费或同样便宜的选项可以做到这一点

谢谢

更新: 我决定对Assembla进行更深入的研究,它看起来不像David建议的那样提供细粒度控制。我在他们的支持论坛上找到了这些信息


我想现在的问题是,是否有人知道另一个svn托管解决方案可以提供这种用户级控制?

我查看了Assembla,但找不到任何信息,也不想创建空间。Assmebla是否允许您访问Subversion存储库服务器本身?如果没有,可能没有办法指定您想要的详细信息

让我们在您的定义中明确几点:

  • 存储库:存储库是使用
    svnadmin create
    命令创建的Subversion目录。它可以包含单个项目或多个项目,每个项目都有自己的
    主干
    分支
    、和
    标记
    目录
  • 模块:这是Subversion存储库中的一个项目。一个存储库中可能有多个模块,或者一个模块。每个模块通常包含自己的
    主干
    标签
    、和
    分支
    目录
我相信Assmebla是说一个空间是一个单一的Subversion存储库。当你说多个存储库时,我假设你说的是单个存储库/空间中的多个模块

在Subversion中,如果您可以控制Subversion服务器和存储库目录本身,则可以控制每个用户对目录的访问。这样,您就可以拥有一个包含多个模块的存储库(我假设您已经拥有了),并且您可以控制谁拥有对每个模块的读写访问权

如果Assembla像大多数Subversion托管站点一样,它们不允许您直接访问服务器。取而代之的是,你使用他们提供给你的工具,而很少有网站会给你工具来给你这样好的控制度。相反,用户可以访问存储库,也可以不访问。(该访问可以包括或不包括写访问)

如果您想在Assembla中为该承包商创建一个单独的存储库,您可能需要为该承包商创建第二个空间,并支付两个空间的费用

关于Subversion还有一件事:您不能在存储库之间使用
svn复制
svn合并
,或者使用
svn:external
。我不知道最后一个问题是否是你的问题

  • Assemlba的ACL在每个项目的基础上运行,而不是每个回购的基础上运行(即,您为所有和任何用户级别授予对项目内部所有回购的相同访问权)
  • 开放式存储库允许所有人进行读取访问
  • 第1点和第2点的结果:如果您将用户添加到一个具有一个回购协议的项目中,则在常见情况下很容易找到其他“隐藏”回购协议(如果在项目之间共享公共用户)
  • 第1点、第2点和第3点的结果是:如果您想要真正安全的回购,您必须创建私人项目并收集其中的所有回购

  • 我[我已经使用Assembla好几个月了。这是我对这个主题的一点贡献。实际上,存储库和空间之间是有区别的。如果你在Assembla中创建一个空间,你可以在同一个空间中添加多个存储库。一个空间就是你存放项目的地方。如果你在在“工具”部分中,您可以在同一空间中添加另一个svn repo。是的,如果您向某个用户授予特定访问权限,则该用户将获得对其余repo的相同访问权限。因此,假设您希望某个用户具有对svn repo 1的编辑访问权限,而不是对snv repo 2的编辑访问权限,那么您应该创建一个不同的没有足够的空间进行第二次回购


    希望它能有所帮助!

    我已经环顾了一下四周,相信我已经找到了一个svn解决方案,可以解决我所追求的那种访问限制

    我现在正在研究的解决方案是,尽管它们的签入/签出速度似乎不如Assembla(早期使用似乎表明了这一点),但它们似乎提供了我所需要的细粒度级别的每个存储库访问限制


    同样,它出现了,并且(我也签出了)在他们最需要的功能中有此功能,因此在不久的将来这些解决方案可能会出现这种情况。

    使您可以在同一个项目或他们称之为项目的空间中添加多个存储库,并且每个角色(观察者、成员、所有者)具有不同的权限或者你可以选择一个公文包解决方案,以不同的团队和权限管理单个公文包中的多个空间。这是一个复杂的产品,需要做很多事情,只需要花时间深入检查一下。

    我不认为我说的是单个存储库空间中的多个模块。Assembla说在一个空间中可以有多个存储库。公平地说,它没有提到任何模块,只是空间和存储库。当我创建