Pergunta

Eu quero usar o método de status, mas não entendo como ele funciona. Alguém poderia me mostrar um exemplo de uso, por favor?

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

Solução

Bem, vai funcionar exatamente como o svn status comando: http://svnbook.red-bean.com/en/1.0/re26.html

Você receberá a lista de arquivos bombeados para o 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'
}

Outras dicas

Ou se você não se importa com delegados embutidos:

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

Observe que as versões delegadas das funções do Sharpsvn são sempre um pouco mais rápidas do que as revisões, retorna uma coleção, pois esse método permite organizar a menor quantidade de informações ao mundo gerenciado. Você pode usar o SVN*EventArgs.Detach () para marcar tudo de qualquer maneira. (Isso é o que as funções .getxxx () fazem internamente)

A versão em linha de delegado em linha funcionou para mim, mas o EventHandler<T> a versão não funcionou até eu definir o tipo para EventHandler<SvnStatusEventArgs>.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top