문제

상태 방법을 사용하고 싶지만 작동 방식을 이해하지 못합니다. 누군가 나에게 사용의 예를 보여줄 수 있습니까?

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

이벤트 핸들러에 펌핑 된 파일 목록을 얻을 수 있습니다.

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