从svn更新之前,检查本地目录是一个工作副本

时间:2012-09-14 12:01:39

标签: c# sharpsvn

我正在使用c#编程提取svn存储库。我已将sharpsvn dll添加到我的项目中并编写了以下代码

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'检出文件/文件夹到这个文件夹。

下次当我运行程序时,它应该自动更新而不用结帐。我怎么知道服务文件夹是否已经完成了一次结账,现在它应该更新?

1 个答案:

答案 0 :(得分:5)

您可以确定目录是否是这样的工作副本:

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