2010-04-11 23 views
1

我的问题很简单,使用SharpSvn Api也应该很容易。在这里我所做的:如何使用SharpSvn来比较Svn存储库

path = "c:\project"; 
using (SvnLookClient client = new SvnLookClient()) 
{ 
    SvnLookOrigin o = new SvnLookOrigin(path); 
    Collection<SvnChangedEventArgs> changeList; 
    client.GetChanged(o, out changeList); // <-- Exception 
} 

,当我打电话GetChanged,我得到一个异常:

无法打开文件“C:\项目\格式”:系统找不到文件指定。

所以,也许有一些我失踪了?或者,这可能不是找到在本地存储库中修改过的文件和文件夹列表的正确方法吗?

在此先感谢。

回答

2

SharpSvn中的SvnLookClient类与'svnlook'控制台应用程序等效。它是一个低级别的工具,它使存储库钩子可以使用直接文件访问来查看存储库的特定事务。

您可能想要使用SvnClient类来查看WorkingCopy,最有可能的是它的Status(),或者在某些情况下更简单的GetStatus()函数来查看更改的内容。

0

的SvnLookOrigin构造希望的路径实际上是:

path = "c:\project\.svn\"; 

也就是说,它要特殊“的.svn”目录不只是在源被检查出的根源。

虽然你可能要听伯特和做类似:

path = "c:\project"; 
using (SvnLookClient client = new SvnLookClient()) 
{ 
    SvnLookOrigin o = new SvnLookOrigin(path); 
    Collection<SvnChangedEventArgs> changeList; 
    client.GetStatus(o, out changeList); // Should now return the differences between this working copy and the remote status. 
}