Использование client.status в С# с помощью sharpsvn

Я хочу использовать метод состояния, но не понимаю, как он работает. Может ли кто-нибудь показать мне пример использования, пожалуйста?

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

person Pedro    schedule 15.03.2010    source источник


Ответы (3)


Ну, это будет работать точно так же, как команда 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'
}
person Noon Silk    schedule 15.03.2010
comment
Спасибо большое, все работает, вы лучшие. Спасибо! - person Pedro; 15.03.2010

Или, если вы не возражаете против встроенных делегатов:

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() делают внутри)

person Bert Huijben    schedule 15.03.2010

У меня работала встроенная версия делегата, но версия EventHandler<T> не работала, пока я не установил тип EventHandler<SvnStatusEventArgs>.

person user877219    schedule 03.08.2011