强制svn用户并使用私有子目录更新签出

强制svn用户并使用私有子目录更新签出,svn,svn-checkout,Svn,Svn Checkout,我有一个Subversion树,它只有一些公共目录。最后一个目录仅对用户“我”可用 当我签出trunk时,我得到/public1和/public2,但不是/private1。我没有被要求提供我的凭据,因为Subversion认为它可以自动签出公共目录 如何强制Subversion将此目录签出为“我”,以便获得所有目录?我原以为这就像在命令行中添加--username一样简单,但这行不通 但是,如果我已经签出了这个目录结构,并且只有公共目录,该怎么办?我已经改用“我”了,因为我可以毫无问题地进行提

我有一个Subversion树,它只有一些公共目录。最后一个目录仅对用户“我”可用

当我签出
trunk
时,我得到
/public1
/public2
,但不是
/private1
。我没有被要求提供我的凭据,因为Subversion认为它可以自动签出公共目录

  • 如何强制Subversion将此目录签出为“我”,以便获得所有目录?我原以为这就像在命令行中添加
    --username
    一样简单,但这行不通
  • 但是,如果我已经签出了这个目录结构,并且只有公共目录,该怎么办?我已经改用“我”了,因为我可以毫无问题地进行提交。但无论我做什么,都不会显示
    /private1
    目录。如何使用私有目录更新本地副本
  • 更奇怪的是,我可以(在目录中)执行以下操作:

    Subversion显然成功了,没有任何错误或警告,但我仍然没有得到目录。(当然,我也可以更新不存在的
    private2
    ,但仍然没有错误或警告,所以我想这并不意味着什么。)

    以下是我在Apache上的Subversion授权文件的相关部分:

    [groups]
    developers=me
    
    [foo:/trunk]
    @developers=rw
    *=r
    
    [foo:/trunk/private1]
    @developers=rw
    *=
    
    我可以通过WebDAV使用浏览器浏览到
    /trunk/private1
    (在我为用户“我”输入正确的凭据之后)。请参见Subversion手册中的。特别是,请阅读页面上最后一个灰色框

    基于此信息,服务器似乎可以在没有凭据的情况下签出根文件夹,然后以匿名方式执行整个签出。由于您只有一次身份验证的机会,因此当您访问私有目录时,您仍然是匿名的,因此无法获得它们的副本。如果需要像这样访问受保护的目录,请使用初始
    svn checkout
    命令上的
    --username
    选项。我不知道您是否可以
    签出
    使用一组凭据将文件夹放入使用另一组凭据签出的工作副本的中间(这样做会使
    svn commit
    混淆,因为每次提交只能有一个作者)

    使用web浏览器浏览源代码完全是另一回事,因为服务器可以在每次加载新页面时请求验证

    svn update private1
    
    [groups]
    developers=me
    
    [foo:/trunk]
    @developers=rw
    *=r
    
    [foo:/trunk/private1]
    @developers=rw
    *=