C#에서 SharpSVN에서 자격 증명을 얻습니다.
-
20-09-2019 - |
문제
도구 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에서 작업을 수행하려면 약간 다른 구문이 있지만 이것이 일반적인 아이디어입니다.