2009-10-06 2 views
2

SVN에 여러 번의 커밋을 수행하기 위해 몇 가지 C# 코드를 작성합니다.이 코드는 svnmucc 도구와 비슷합니다. 지금까지 SharpSvn을 사용하여 SVN과 필요한 나머지 통신을 했으므로 다음과 같은 작업을 수행하기 위해 SharpSvn을 사용했습니다.C#에서 SharpSvn 자격 증명 얻기

자격 증명 (사용자 이름, 비밀번호)은 어떻게 얻을 수 있습니까? SharpSvn에서 사용하는

나는 같은 것을 할 싶습니다

using (SvnClient svnClient = new SvnClient()) 
{ 
    SomeFictitiousCredentialsClass credentials = svnClient.Authentication.FictitiousGetCachedCredentialsMethod(); 

    // Call my code that performs svnmucc-like work here, passing username and password 
    // obtained from 'credentials' variable. 
} 

답변

1

Sharpsvn 당신에게 서브 버전에서 자격 증명을 제공하는 API를 가지고 있지 않습니다. 대부분 libsvn_client API를 구현하며이 수준에서는이 데이터에 액세스 할 수 없습니다.

SharpSvn은 자격 증명이 필요할 때 Subversion 라이브러리에서 콜백을받습니다. 대부분의 경우 내장 암호 저장소가 인증에 실패한 후 당신의 svnmucc 코드는 또한 서브 버전의 API를 사용하는 경우

, 당신은 Subversion을 미리 정의 된 인증 처리기를 플러그인 할 수 있습니다 ..

SharpSvn 자체가 아직 svnmucc를 지원하지 않습니다. SharpSvn에 이것을 추가하는 것을 좋아하는 사람에 대한 이야기가 있었지만, 최근에 이것에 대한 소식이 없습니다.

0

다른 답변은 SharpSvn의 모든 최신 버전에 유효하지만 SvnMucc 지원은 방금 도착했습니다 SharpSvn의 개발 코드에서 곧 SvnMucc와 같은 작업을 수행 할 수있게 될 것입니다.

using SharpSvn; 

SvnCommitResult cr; 
using (SvnMultiCommandClient mucc = new SvnMultiCommandClient("http://my-repos/svn/")) 
{ 
    mucc.CreateDirectory("trunk"); 
    mucc.CreateDirectory("branches"); 
    mucc.CreateDirectory("tags"); 
    mucc.CreateDirectory("trunk/src"); 
    mucc.SetProperty("", "svn:auto-props", "*.cs = svn:eol-style=native"); 
    mucc.SetProperty("", "svn:global-ignores", "bin obj"); 

    mucc.Commit(out cr); // Commit r1 
} 
using (SvnClient client = new SvnClient()) 
{ 
    client.CheckOut("http://my-repos/svn/", @"C:\wc"); 
} 

이 기존 SvnClient에서 작업을 수행하려는 경우 사용할 수있는 약간 다른 구문은, 그러나 이것은 일반적인 생각이다.