1

私はc#プログラミングを使用してsvnリポジトリを抽出することに取り組んでいます。プロジェクトにsharpsvndllを追加し、次のコードを記述しました

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'メソッドを使用して更新できます。

自分のマシンに「services」フォルダがあるとしましょう。最初に「client.checkout」を使用してこのフォルダーにファイル/フォルダーをチェックアウトしています。

次回プログラムを実行すると、チェックアウトせずに自動的に更新されます。サービスフォルダがすでに一度チェックアウトされ、更新される必要があるかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

7

ディレクトリが次のように作業コピーであるかどうかを判断できます。

public static bool IsWorkingCopy(string path)
{
    using (var client = GetSvnClient())
    {
        var uri = client.GetUriFromWorkingCopy(path);
        return uri != null;
    }
}
于 2012-11-21T19:22:00.490 に答える