限制源代码访问目录中的少数文件,新的开发人员 - SVN

时间:2012-10-19 18:28:41

标签: svn branch collaboration access-control

有一些新的顾问,他们将致力于软件的一部分,这些软件对整个软件并不具有功能上的关键性。该软件不是以模块化的方式组织的,s.t。所有这些包含非关键功能的源文件都不会在目录中隔离。

有没有这样的方式,顾问不能分叉/分支项目,也只能处理文件(非关键功能文件)?

在这种情况下,版本控制软件是SVN。

2 个答案:

答案 0 :(得分:3)

如果在Windows上使用VisualSVN Server,则可以轻松地对目录设置访问权限(例如,只读或无权限)。您无法在SVN中为每个文件设置任何内容(它被设计为在目录上运行)。其他SVN系统也可以通过编辑authz文件并编辑您想要保护的每个目录的条目来实现相同的目的。

在单个文件上设置访问控制很快就会变成一场噩梦,因此请将要保护的文件移到几个目录中并将控件放在它们上面。

答案 1 :(得分:2)

您可以通过执行以下操作来执行此操作:

  1. 将具有非关键功能的源文件移动到存储库中的另一个位置 - 我建议在文件夹级别与主干相同。
  2. 设置顾问的权限,使其具有对现有存储库的只读访问权限以及对步骤1中创建的新目录的读/写访问权。
  3. 添加SVN:您在步骤1中移动的文件的外部。从SVN 1.6开始,您可以individual file externals
  4. 确保您向顾问提供对中继的只读访问权限以及对新目录的读写访问权

    第3步是棘手的​​,所以我将尝试进一步解释。假设您的原始存储库具有像这样的文件结构

    /trunk
      /lib 
        - Non Critical File 1.txt
        - Non Critical File 2.txt
        - Other files.h
    

    完成第3步后,您的存储库将如下所示:

    /trunk 
      /lib
        - SVN: External to Non Critical File 1.txt 
        - SVN: External to Non Critical File 2.txt 
        - Other files.h
    /NewDirectory
      - Non Critical File 1.txt
      - Non Critical File 2.txt
    

    对每个非关键文件执行此操作。

    这将允许您的顾问只查看现有存储库中的文件,但只更新新创建的目录中的文件

    设置SVN:外部参见this stack overflow post