2011-11-26 34 views
4

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

我在这方面可以看到的唯一限制是将用户设置为“编辑”,“查看”或“所有”模式,这些模式看起来并不符合我的要求。试图阅读Assembla FAQ,但无法找到任何信息。

我们在启动包,它给1空间和3用户。

所以,这是可能的使用Assembla服务,如果没有,有没有任何免费或只是一样便宜的选择那里会做到这一点?

谢谢。

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

我想现在的问题是,有谁知道另一个svn托管解决方案,那里将提供此用户级别的控制?

回答

1

我自从四处张望,相信我发现了一种svn解决方案,用于我之后的访问限制。

我现在正在研究的解决方案是VersionShelf。尽管它们看起来没有Assembla那么快,但checkins/checkout(早期使用似乎表明了这一点),它们似乎提供了每个存储库访问限制到我需要的细粒度级别。

再一次,它似乎AssemblaUnfuddle(我也检查了)有他们的最高要求的功能,所以这可能发生在不久的将来这些解决方案。

1

我看着Assembla,但找不到任何信息,也不想创建空间。 Assmebla能让你访问Subversion版本库服务器本身吗?如果没有,那么可能没有办法指定你想要的细节。

让我们得到了一些东西直你的定义:

  • :存储库与svnadmin create命令创建一个Subversion目录。它可以包含一个项目或多个项目,每个项目都有自己的trunk,branchestags目录。
  • 模块:这是一个Subversion版本库中的项目。单个存储库或单个模块中可能有多个模块。每个模块通常包含自己的trunk,tagsbranches目录。

我相信Assmebla是说,一个空间是一个Subversion版本库。当你说多个存储库,我假设你正在谈论多个模块在单个存储库/ 空间

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

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

如果您想为此承包商在Assembla中创建一个单独的存储库,那么您可能必须为此承包商创建第二个空间并支付两个空间。

有关Subversion的更多信息:不能在存储库之间使用svn copy,svn merge或使用svn:external。我不知道这最后一个是否是你的问题。

+0

我不认为我在单个存储库空间中说多个模块。 Assembla说,你可以在一个空间中拥有多个存储库。它没有提到任何有关模块公平的内容,只是空间和存储库。当我通过定义创建多个存储库时,checkins的url不同,即https://subversion.assembla.com/svn/repo.1/ vs https://subversion.assembla.com/svn/repo.2/。我可以在其中添加多个项目并相应地签入。 – dreza

+0

这是Apache httpd,对吗? 'svn'是Apache中的一个配置点。这是您设置访问的地方。从理论上讲,你可以设置更好的粮食访问权限,但最有可能的是Assembla只能说明谁可以登录以及他们是否具有只读或读写权限。根据Apache如何设置,'repos.1'和'repos.2'可以是独立的回购站,也可以是同一回购站中的两个模块。不同之处在于钩子脚本以及你是否可以在这两者之间进行合并。但是,为了访问,它们共享一个通用的Apache配置。 –

2
  1. Assemlba的ACL适用于每个项目基础上,而不是每回购(即授予相同的访问里面的项目全部回购为所有和任何用户级)
  2. 打开存储库允许每个人都可以读取访问
  3. 第1点和第2点的后果:如果您将用户添加到一个具有一个回购的项目中,通常情况下很容易找到其他“隐藏”回购(如果普通用户跨项目共享)
  4. 后果点1和点2和第3点:如果你想真正安全的回购,你必须创建私人项目,并收集所有回购里面
3

我[一直在使用Assembla了好几个月了。这是我对这个主题的小小贡献。实际上,存储库和空间是有区别的。如果您在Assembla中创建空间,则可以将多个存储库添加到同一空间。空间只是您持有项目的地方。如果您转到工具部分下的空间管理选项卡,您会发现在同一空间内添加另一个svn回购的选项。是的,的确,如果您授予某个用户的特定访问权限,那么用户将获得与其他Repos相同的访问权限。因此,假设您希望某个用户对svn repo1拥有编辑权限,但不想snv repo2,则应该创建一个不同的空间来容纳第二个repo。

希望它有帮助!

+0

谢谢瓢虫。这些都是我曾经想过的,因此决定他们不太符合我的要求。 – dreza

9

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

+0

干杯BigAll。我可能应该更详细地研究Assembla,但VersionShelf对于现在的albiet来说有点慢。 – dreza

相关问题