我正在考虑外包一些开发工作,并希望分发 SVN 凭据,而不是授予对我使用的服务器的访问权限。
但是,我对此有点不舒服,想知道是否可以阻止特定用户运行svn log
并查看文件历史记录。
他们真正需要的是co
,ci
和diff
简短的回答
不。
长答案
所有标准方法都可以工作或在更高级别上工作,而不是单个 SVN 命令(共同操作读/写权限),或在较低级别(使用单独的 DAV 命令,其中一组转换为单个 svn 命令)
khmarbaise 在这里有 MISS ONE
想法和考虑
如果您可以构建 DAV-SVN 命令映射(使用 Apache 日志和手动)并验证,在 DAV 层启用和禁止的 svn-commands 在 DAV 端没有交叉点,您只禁用“坏”dav-commands。但我认为,它们都有交叉点(未经测试!)。
另一方面,如果您只想从某个点限制对旧历史的访问(不完全禁用使用命令,我盲目地认为这是不可能的),您可以将外包商的工作区拆分为单独的树,为此使用基于路径的访问控制。
khmarbaise 在这里有两个小姐
因为他只记得大约 1) 单独的 2) 不相关的存储库,而您至少有 2 个选择:
在这两种解决方案中,用户的日志将在其空间中的第一个修订版中停止(由于缺少旧修订版或在复制之前缺少对历史记录的访问权限),对于具有足够访问级别的用户,使用合并仍然可以进行双向同步。
基于创建基于路径的授权的可能性,您可以限制对存储库特定区域的访问,这意味着并非所有历史记录都只能在您授予访问权限的路径中读取。我觉得应该没问题。否则你真的需要做一个副本并且必须在存储库之间复制更改,这在 SVN 中不是一件简单的工作。