2

我需要为非工程组授予对我们存储库中某些目录的读写访问权限。理想情况下,我希望他们也只需要检查这个目录集合,而不是整个树(但这部分不是必需的)。

我无法弄清楚的问题是如何处理(a)散布在存储库中的大量(几乎 100 个)目录和(b)这些目录低于“分支/分支名称”的事实URL 路径。我有一个标准的仓库,下面有主干、分支标签。

我为 rw 问题尝试了 authz,但似乎我必须使用完整路径。完整路径意味着包括分支信息。我们使用了大量的分支,所以这似乎不切实际。每次更改分支时,我都必须更新我的 authz 文件。

我考虑过使用 svn:externals 或符号链接将目录组收集到一个空间中。但是,我仍然看不到如何避免在路径中包含分支信息的问题。

似乎这些解决方案都不允许使用通配符,这可以解决我的问题。也许我错过了一些东西。

我知道有 svnperms.py 脚本,但我希望在不使用钩子脚本的情况下解决这个问题。如果必须,我会这样做,但有没有不需要钩子脚本的解决方案?

更新 好的,到目前为止没有兴趣,所以我将添加一些关于我正在尝试的细节。

最大的问题是大量的目录(每个都称为error_messages),所以如果我能以某种方式整合它们。我试图通过使用 svn:externals 来解决这个问题。

project
  \ 
   + branches
     \
      + branchA
       \
        + error_messages <<-- new directory

现在,我将 svn:externals 属性添加到新的 error_messages 目录,并使用相对路径,如下所示:

../path/to/first/error_messages first
../path/to/second/error_messages second
etc.

这非常有助于将所有各种 error_messages 目录签出到一个位置。但是,它对授权没有帮助。

希望我可以将 branchA/error_messages 路径添加到 authz 文件,从而为我的 Info 团队提供读写访问权限。但是 SVN 太聪明了,它会检查相对路径的授权。因此,除非我在我的 authz 中有 path/to/first、path/to/second 等,否则 Info 用户将无权访问。

我真的卡住了吗?似乎,要使用这种方法,我必须将整个存储库的读写访问权限授予 Info 团队(至少在 authz 文件中),然后使用预提交挂钩限制该访问权限。

顺便说一句,我应该给出一些环境细节:

  • 服务器:Linux,svn 1.7
  • 客户:Linux svn 1.7,Windows for Info 团队,可能 smartSvn 1.7
  • "svn:" 协议,没有 http
  • 用于身份验证的 SASL

所以,在看到 svn:externals 不起作用(不实用)之后,我想也许我可以创建符号链接。但是,Info 团队将使用 Windows 客户端,所以我认为该解决方案也是不可能的。

4

0 回答 0