Вопрос

Я хочу использовать метод 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>.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top