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

时间:2011-11-26 21:27:28

标签: svn hosting

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

我在这方面可以看到的唯一限制是将用户设置为编辑,查看或所有模式,这似乎不适合我正在寻找的内容。试图阅读Assembla常见问题解答但无法找到任何相关信息。

我们在启动程序包中提供1个空间和3个用户。

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

感谢。

更新: 我决定对Assembla进行更深入的研究,看起来它没有像大卫的建议那样提供这种细粒度控制。我在http://forum.assembla.com/forums/2-Subversion-and-Git/topics/3567-Team-permissions-to-different-repositories-in-the-same-space的支持论坛上找到了这些信息。

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

5 个答案:

答案 0 :(得分:9)

Assembla使您可以在同一项目中添加多个存储库,或者在它们调用的空间中添加多个存储库,并且在每个存储库上对每个角色(观察者,成员,所有者)具有不同的权限。或者,您可以选择一个组合解决方案来管理具有不同团队和权限的单个组合中的多个空间。它是一个复杂的产品,做了很多事情,只需要花时间进行更深入的检查。

答案 1 :(得分:3)

我已经使用Assembla几个月了。这是我对这个主题的小小贡献。实际上,存储库和空间之间存在差异。如果在Assembla中创建空间,则可以将多个存储库添加到同一空间。空间只是您举办项目的地方。如果您转到“工具”部分下的空间的“管理”选项卡,您将找到在同一空间中添加另一个svn存储库的选项。是的,如果你授予某个特定用户某些访问权限,那么用户就可以获得对其余存储库的相同访问权限。所以,假设您希望某个用户具有对svn repo1的编辑访问权限而不是snv repo2,那么您应该创建一个不同的空间来容纳第二个回购。

希望它有所帮助!

答案 2 :(得分:2)

  1. Assemlba的ACL适用于每个项目,而不是 per-repo (即您将相同的访问授予项目中的所有repos 全部和任何用户级别)
  2. 开放存储库允许每个人的读取权限
  3. 第1点和第2点的后果:如果您将用户添加到一个具有一个仓库的项目中,则很容易在常见情况下找到其他“隐藏”仓库(如果共同用户在项目中共享)
  4. 第1点和第2点以及第3点的后果:如果您想要非常安全的回购,您必须创建私有项目并收集其中的所有回购

答案 3 :(得分:1)

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

让我们在你的定义中直截了当地说明一些事情:

  • 存储库:存储库是使用svnadmin create命令创建的Subversion目录。它可以包含单个项目或多个项目,每个项目都有自己的trunkbranchestags目录。
  • 模块:这是Subversion存储库中的项目。单个存储库或单个模块中可能有多个模块。每个模块通常都包含自己的trunktagsbranches目录。

我相信Assmebla说 space 是一个Subversion存储库。当您说多个存储库时,我假设您正在讨论单个存储库/ 空间中的多个模块

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

如果Assembla与大多数Subversion托管站点一样,它们不会让您直接访问服务器。相反,你使用他们给你的工具,而且很少有网站会为你提供工具来给你这种精确的控制。相反,用户可以访问存储库,或者不能访问存储库。 (该访问可能包括或不包括写访问)。

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

Subversion还有一件事:您不能svn copysvn merge或在存储库之间使用svn:external。我不知道这最后一个是否适合您。

答案 4 :(得分:1)

我已经看了一下,相信我找到了一个svn解决方案,用于我所追求的访问限制。

我现在正在研究的解决方案是VersionShelf。虽然它们似乎没有像Assembla那样快速进行签入/签出(早期使用似乎表明了这一点),但它们似乎为我需要的细粒度级提供了每个存储库访问限制。

同样,它显示AssemblaUnfuddle(我也检查过)在他们最常请求的功能上有这个,所以在不久的将来这些解决方案可能会发生。