sharpsvnとC#でclient.statusを使用します
質問
私は、ステータスメソッドを使用したいが、私はそれがどのように機能するかを理解しません。誰かが私の使用例を示してくださいもらえますか?
EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
解決
まあ、それはsvn status
コマンドとまったく同じように動作します:のhttp:/ /svnbook.red-bean.com/en/1.0/re26.htmlする
あなたはEventHandlerのに汲み上げたファイルの一覧を取得します
using(SvnClient client = /* set up a client */ ){
EventHandler<SvnStatusEventArgs> statusHandler = new EventHandler<SvnStatusEventArgs>(HandleStatusEvent);
client.Status(@"c:\foo\some-working-copy", statusHandler);
}
...
void HandleStatusEvent (object sender, SvnStatusEventArgs args)
{
switch(args.LocalContentStatus){
case SvnStatus.Added: // Handle appropriately
break;
}
// review other properties of 'args'
}
他のヒント
それとも、インラインでデリゲートを気にしない場合:
using(SvnClient client = new SvnClient())
{
client.Status(path,
delegate(object sender, SvnStatusEventArgs e)
{
if (e.LocalContentStatus == SvnStatus.Added)
Console.WriteLine("Added {0}", e.FullPath);
});
}
SharpSvn機能の委任バージョンは、この方法は、管理世界への情報の最小量をマーシャリングすることができますように高速改正よりも(小さな)ビットがコレクションを返す常にあることに注意してください。あなたはとにかくマーシャルのすべてにSvnの* EventArgs.Detach()を使用することができます。 (これは.GetXXX()関数は、内部で何をすべきかである)
インラインデリゲートのバージョンは私のために働いたが、私はEventHandler<T>
するタイプを設定するまでEventHandler<SvnStatusEventArgs>
のバージョンは動作しませんでした。
所属していません StackOverflow