Frage

Ich möchte den Status Methode verwenden, aber ich verstehe nicht, wie es funktioniert. Könnte mir jemand zeigen ein Beispiel für die Verwendung bitte?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
War es hilfreich?

Lösung

Nun, es funktioniert genau wie der svn status Befehl ein: http: / /svnbook.red-bean.com/en/1.0/re26.html

Sie finden die Liste der Dateien auf dem Eventhandler gepumpt bekommen:

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'
}

Andere Tipps

Oder wenn Sie nicht Inline-Delegierten dagegen:

using(SvnClient client = new SvnClient())
{
   client.Status(path,
                 delegate(object sender, SvnStatusEventArgs e)
                 {
                    if (e.LocalContentStatus == SvnStatus.Added)
                       Console.WriteLine("Added {0}", e.FullPath);
                 });
}

Beachten Sie, dass die Delegierten Versionen der SharpSvn Funktionen sind immer eine (kleine) etwas schneller als die Revisionen gibt eine Auflistung wie diese Methode ermöglicht es die geringste Menge an Informationen an die Managed Welt Rangier. Sie können sowieso Svn * EventArgs.Detach (), um marshall alles verwenden. (Dies ist, was die .GetXXX () Funktionen intern tun)

Die Inline-Delegierten Version für mich gearbeitet, aber die EventHandler<T> Version hat nicht funktioniert, bis ich den Typen EventHandler<SvnStatusEventArgs> gesetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top