【问题标题】:SharpSvn: Why was update of subfolder from Empty Depth Checkout skipped?SharpSvn:为什么跳过了从 Empty Depth Checkout 更新子文件夹?
【发布时间】:2013-02-20 22:09:25
【问题描述】:

我在使用 SharpSvn(来自 C#)从 repo 中挑选一些文件夹时遇到了一些麻烦。我这样做了:

client.CheckOut( uri, dir, new SvnCheckOutArgs() { Depth = SvnDepth.Empty } );
foreach( var folder in folders )
{
   client.Update( folder );
}

但是我对Update 的第二次呼叫没有成功。它报告该操作是 SvnNotifyAction.Skip 并且没有任何内容写入工作副本。

uri 本质上类似于:svn://myserver/myrepo/mysdk,而 dir 类似于 C:\Test\mysdk。 (出于这个问题的目的,我已经更改了确切的名称,但在结构上它是相同的。)

那么第一个文件夹是C:\Test\mysdk\include(这个工作)

那么第二个文件夹是C:\Test\mysdk\bin\v100\x86(这个不更新)

为什么第一个可以工作,但是当我得到第二个文件夹(嵌套的子文件夹)时它没有更新?它报告它被跳过?但我不知道如何找出原因。

【问题讨论】:

    标签: sharpsvn


    【解决方案1】:

    事实证明,更新嵌套子目录不起作用,因为父目录还不存在,因此跳过了嵌套子目录更新。为了解决这个问题,我需要向 Update 添加一个参数来指示它应该创建父目录。

    (等效的 svn 命令行选项是 --parents)。

    client.Update( folder, new SvnUpdateArgs() { UpdateParents = true } );
    

    我通过尝试从 svn 命令行手动执行此操作发现了这一点(并遇到了同样的问题。)svn help co 提供了这个小线索:--parents : make intermediate directory 我是假设 UpdateParents 和 --parents 是等价的。到目前为止一切顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 2019-01-02
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      相关资源
      最近更新 更多