【问题标题】:Why is SharpSVN SvnClient.Export(...) not always finding files that should be there?为什么 SharpSVN SvnClient.Export(...) 并不总能找到应该存在的文件?
【发布时间】:2011-03-07 11:08:28
【问题描述】:

我正在使用 Export() 成员函数来获取特定版本的文件,该版本正在运行,但由于某些原因在其他情况下它不是。对于所有修改后的路径,它似乎正在工作,但是在该修订版中删除和有时添加的文件我得到一个异常,指出在使用的 url 处没有文件。当我在这些路径上使用 TurtoiseSVN“将修订版复制到...”时,它工作正常,我只是想知道我是否缺少 SharpSVN 的某些内容,我想要所有修改后文件的完整版本。这是我的代码的总体思路:

if (logentry.ChangedPaths != null)
{
     foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths)
     {
         SvnExportArgs ex = new SvnExportArgs();
         ex.Revision = revisionNum;
         client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex);
     }
}

任何帮助或建议将不胜感激,谢谢。

【问题讨论】:

    标签: c# export sharpsvn


    【解决方案1】:

    我发现使用 SvnUriTarget 而不是仅使用带有 SvnExportArgs 的 uri 可以让我获得正确的信息。不太清楚为什么它们不同,但它有效。

    所以我使用的不是上面的导出:

    client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex);
    

    我找到的答案是link text

    【讨论】:

      【解决方案2】:

      命令行客户端具有相同的行为。发生的事情是指向文件的 URL 可以来来去去。这意味着指向现在已删除的文件的 url 无效,除非您指定要使用较旧的 url。这称为挂钩修订。

      阅读 svnbook 中的 peg revisions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        • 2020-01-31
        • 2019-08-25
        相关资源
        最近更新 更多