2012-09-14 45 views
0

我正在使用c#編程來提取svn存儲庫。我已經加入sharpsvn DLL到我的項目,並寫了下面的代碼檢查本地目錄是從svn更新之前的工作副本

string localFolder= @"C:\Users\Desktop\LocalFolder\Dev\Websites\Service"; 
SvnClient client = new SvnClient(); 

SvnUriTarget target = new SvnUriTarget(@"http://svn.user.com/svn/websites/Branches/InternalServices"); 

SvnInfoEventArgs info; 

client.GetInfo(target, out info); 

//Specify the repository root as Uri 
//Console.WriteLine("Repository version: {0}", info.Revision); 
Console.WriteLine("Started checking out. Please wait few minutes"); 

client.CheckOut(target, localFolder);     
//client.Update(localFolder); 

我已簽出使用「client.checkout」的方法,我可以用「client.update」的方法更新。

讓我說我有我的機器文件夾'服務'。我最初使用'client.checkout'檢出文件/文件夾到這個文件夾。

下一次當我運行程序時,它應該自動更新而不結賬。我如何知道服務文件夾是否已經完成一次結帳,現在應該更新?

回答

5

您可以確定目錄是否爲這樣的工作拷貝:

public static bool IsWorkingCopy(string path) 
{ 
    using (var client = GetSvnClient()) 
    { 
     var uri = client.GetUriFromWorkingCopy(path); 
     return uri != null; 
    } 
}