을 설정하는 방법의 저자 SVN commit 를 사용하여 SharpSVN 라이브러리에서는 c#
문제
내가 사용하는 SharpSvn 라이브러리에서 과정을.나는 설정을 저자 커밋하는 동안,하지만 나는 항상 함께 commit 내 Windows 사용자 이름입니다.
이 작동하지 않는 저:
System.Net.NetworkCredential oCred = new
System.Net.NetworkCredential("user", "pass");
client.Authentication.DefaultCredentials = oCred;
나도했습니다:
client.SetProperty("", "svn:author", "user");
그러나 나는 오류를 얻을 대상(첫 번째 인수)은 나쁜 것입니다.
그래서 수 있는 방법을 말해주십시오를 사용자 설정(author)의에 투입하 subversion 저장소에서는 c#?
해결책
이에 따라 모든 방법을 연결해 귀하의 저장소로 저장소에 대한 책임이 추가하면 사용자 이름을 수 있습니다.(일반적으로 복사하는 자격에 대한 연결을 하지만 그것을 할 수 없는).
을 사용할 때 file:///소(는 일반적으로 권장하지 않음조 Subversion 예약 습니다)당신은 이에 직접 투입하십시오.
using (SvnClient client = new SvnClient())
{
client.Authentication.Clear(); // Clear predefined handlers
// Install a custom username handler
client.Authentication.UserNameHandlers +=
delegate(object sender, SvnUserNameEventArgs e)
{
e.UserName = "MyName";
};
SvnCommitArgs ca = new SvnCommitArgs { LogMessage = "Hello" }
client.Commit(dir, ca);
}
에 연결하는 경우에는 원격 저장소를 변경할 수 있습니다의 저자는 수정할 때 pre-revprop-변경 후크가 설치된 저장소에서(참조하십시오 Subversion 예약)
using (SvnClient client = new SvnClient())
{
client.SetRevisionProperty(new Uri("http://my/repository"), 12345,
SvnPropertyNames.SvnAuthor,
"MyName");
// Older SharpSvn releases allowed only the now obsolete syntax
client.SetRevisionProperty(
new SvnUriTarget(new Uri("http://my/repository"), 12345),
SvnPropertyNames.SvnAuthor,
"MyName");
}
[2009-08-14] 최근 SharpSvn 릴리스도 이것을 허용:
using (SvnRepositoryClient rc = new SvnRepositoryClient())
{
SvnSetRevisionPropertyRepositoryArgs ra;
ra.CallPreRevPropChangeHook = false;
ra.CallPostRevPropChangeHook = false;
rc.SetRevisionProperty(@"C:\Path\To\Repository", 12345,
SvnPropertyNames.SvnAuthor, "MyName", ra);
}
이 예제에서 직접 파일 액세스를 저장소,하지만 그것을 무시 저장을 위한 걸이를 수 있으므로 성능이 최적화됩니다.
제휴하지 않습니다 StackOverflow