1

有一些新的顾问,他们将在软件的某些部分工作,这些部分对整个软件的功能并不重要。该软件不是以模块化方式组织的,所有这些包含非关键功能的源文件都没有隔离在一个目录中。

有没有办法让顾问无法分叉/分支项目,也只能处理文件(非关键功能文件)?

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

4

2 回答 2

3

如果您在 Windows 上使用 VisualSVN Server,您可以轻松地设置目录的访问权限(例如只读或无访问权限)。您不能在 SVN 中为每个文件设置任何内容(它旨在对目录进行操作)。其他 SVN 系统可以通过编辑 authz 文件并为每个要保护的目录编辑一个条目来执行相同的操作。

对单个文件设置访问控制将很快成为一场噩梦,因此将要保护的文件移动到几个目录中并对其进行控制。

于 2012-10-19T18:51:59.483 回答
2

您可以通过执行以下操作来做到这一点:

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

确保您授予顾问对中继的只读访问权限和对新目录的读写访问权限

第 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:Externals,请参阅此堆栈溢出帖子

于 2012-10-19T19:00:25.233 回答