假设我想阻止某些用户访问我的SVN仓库中的某些文件夹。我只是这样做:
[/]
* = rw
[/NewSecretFolder]
* = rw
some_poor_sap =
但是如果该文件夹从SecretFolder重命名为NewSecretFolder怎么办?用户some_poor_sap是否能够访问/ SecretFolder的历史记录?
答案 0 :(得分:2)
是的,那时他就可以了。 你需要做
[/]
* =
然后允许在需要时访问所需的用户。我就是这样做的。
答案 1 :(得分:2)
authz
文件授权机制完全基于路径,并忽略对象在其他修订版中可能具有的不同名称。因此,当您在特定版本中访问存储库时,将根据该版本的文件夹名称应用授权。
所以当我获得这些授权时:
[/]
* = r
[/MyProject]
* =
devs = rw
我将项目重命名为MyRenamedProject
,然后我更改了这样的授权:
[/]
* = r
[/MyProject]
* =
devs = r
[/MyNewProject]
* =
devs = rw
在这里,我将旧项目路径保留在authz
文件中并授予读取权限,以确保开发人员始终可以在重命名之前读取项目的历史记录。
另请注意,我们始终至少授予root用户读取权限,然后在项目授权中再次使用* =
将其删除,以解决strange svn copy
issues问题。我怀疑这只有在您使用apache来托管SVN时才有意义。