문제

도구 SVNMUCC와 마찬가지로 한 번의 패스로 SVN에 여러 커밋을 수행하기 위해 C# 코드를 작성하고 있습니다. 지금까지 SharpSVN을 사용하여 SVN과의 나머지 커뮤니케이션을 수행 했으므로 다음을 수행하기 위해이를 활용할 수 있다고 생각합니다.

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.
}
도움이 되었습니까?

해결책

SharpSVN에는 전복의 자격 증명을 제공하는 API가 없습니다. 주로 LiBSVN_Client API를 구현 하며이 수준에서는이 데이터에 액세스 할 수 없습니다.

SharpSVN은 자격 증명이 필요할 때 전복 라이브러리에서 콜백을받습니다. 대부분의 경우 내장 비밀번호 저장소가 인증하지 못한다.

SVNMUCC 코드도 Subversion API를 사용하는 경우 Subversion 사전 정의 된 인증 처리기를 플러그인 할 수 있습니다.

SharpSVN 자체는 아직 SVNMUCC 지원이 없습니다. (이것을 SharpSVN에 추가하는 것을 좋아하는 사람에 대한 이야기가 있었지만 최근에 이것에 대한 뉴스는 없었습니다)

다른 팁

다른 대답은 모든 현재 버전의 SharpSVN에 여전히 유효하지만 SVNMUCC 지원은 SharPSVN의 개발 코드에 방금 착륙했습니다. 따라서 곧 .NET에서 작업과 같은 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에서 작업을 수행하려면 약간 다른 구문이 있지만 이것이 일반적인 아이디어입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top