我有一个只有一些公共目录的Subversion树。最后一个目录仅供用户“我”使用。
/trunk/public1
/trunk/public2
/trunk/private1
当我结帐trunk
时,我会获得/public1
和/public2
,但不会/private1
。我没有被要求提供我的凭据,因为Subversion认为它可以自动检出公共目录。
--username
一样简单---但这不起作用!/private1
目录都不会出现。如何使用私人目录更新本地副本?这让我更奇怪的是我可以(在目录中):
svn update private1
和Subversion显然成功,没有错误或警告---但我仍然没有得到目录。 (当然我也可以更新private2
,它不存在,但仍然没有错误或警告,所以我想这并不意味着什么。)
以下是我在Apache上的Subversion授权文件的相关部分:
[groups]
developers=me
[foo:/trunk]
@developers=rw
*=r
[foo:/trunk/private1]
@developers=rw
*=
我可以通过WebDAV浏览器/trunk/private1
使用我的浏览器就好了(在我为用户“我”输入正确的凭据后)。
答案 0 :(得分:0)
请参阅Subversion手册中的section on path-based authorization。特别是,请阅读页面上的最后一个灰色框。
根据这些信息,看起来服务器看到它可以在没有凭据的情况下检出根文件夹,然后匿名进行整个结账。由于您只有一次机会进行身份验证,因此当您访问私人目录时,您仍然是匿名的,因此您无法获得它们的副本。如果需要获取此类受访问保护的目录,请使用初始 --username
命令中的svn checkout
选项。我不知道你可以checkout
使用一组凭据进入使用一组不同凭据签出的工作副本中间的文件夹(这样做会使svn commit
混淆,因为每个提交只能有一个作者)。
使用网络浏览器浏览源代码完全不同,因为服务器可以在每次加载新页面时请求身份验证。