6

我正在使用 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);
     }
}

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

4

2 回答 2

2

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

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

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

我找到的答案在链接文本中

于 2010-06-23T18:29:31.447 回答
2

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

阅读svnbook 中的peg 修订

于 2010-06-23T23:14:52.890 回答