2010-04-11 75 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. 
}