2010-06-23 62 views
5

我正在使用Export()成员函数来获取正在工作的特定修订版的文件,但由于某种原因,在其他情况下并非如此。对于所有修改的路径,它似乎正在工作,但是在该修订中删除了并且有时添加了文件,我得到了异常,指出在使用的URL上没有文件。当我在这些路径上使用TurtoiseSVNs“Copy Revision to ...”时,它工作正常,我只是想知道如果我缺少SharpSVN的某些内容,我想要修改所有修改后的文件的完整版本。继承人我的代码的一般想法:为什么SharpSVN SvnClient.Export(...)不总是找到应该在那里的文件?

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); 
    } 
} 

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

回答

2

我发现使用SvnUriTarget而不是使用SvnExportArgs的uri,我可以获得正确的信息。不太确定他们为什么不同,但它的工作原理。

所以不是我上面的出口用:

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

我找到的答案是在link text

2

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

在svnbook上阅读peg revisions

相关问题