Pregunta

Quiero usar el método de estatus, pero yo no entiendo cómo funciona. Podría alguien mostrar un ejemplo de su uso, por favor?

EventHandler < SvnStatusEventArgs > statusHandler = new EventHandler<SvnStatusEventArgs>(void(object, SvnStatusEventArgs) target);
client.Status(path, statusHandler);
¿Fue útil?

Solución

Bueno, funcionará exactamente igual que el comando svn status: http: / /svnbook.red-bean.com/en/1.0/re26.html

Usted obtendrá la lista de archivos bombeados a la manejador de sucesos:

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

Otros consejos

O si no te importa delegados en línea:

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

Tenga en cuenta que las versiones de los delegados de las funciones SharpSvn son siempre una (pequeña) poco más rápido que las revisiones devuelve una colección ya que este método permite el guiado de la menor cantidad de información al mundo administrado. Puede utilizar Svn * EventArgs.Detach () para ordenar todo lo que de todos modos. (Esto es lo que el .GetXXX () funciones hacen internamente)

La versión en línea delegado trabajó para mí, pero la versión EventHandler<T> no funcionó hasta que establezca el tipo en EventHandler<SvnStatusEventArgs>.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top