gpt4 book ai didi

c# - 如何在 C# 中使用 SharpSVN 库设置 SVN 提交的作者

转载 作者:行者123 更新时间:2023-11-30 14:20:47 26 4
gpt4 key购买 nike

我使用来自 CollabNET 的 SharpSvn 库。我想在提交时设置修订作者,但我总是以我的 Windows 用户名提交结束。

这对我不起作用:

System.Net.NetworkCredential oCred = new
System.Net.NetworkCredential("user"​, "pass");
client.Authentication.DefaultCredentials = oCred;

我也试过:

client.SetProperty("", "svn:author", "user");

但我得到一个错误,目标(第一个参数)是错误的。

那么你能告诉我如何在 C# 中设置提交到 Subversion 存储库的用户(作者)吗?

最佳答案

这完全取决于您如何连接到您的存储库,因为存储库负责向修订添加用户名。 (它通常会复制连接的凭据,但它不必这样做)。

当您使用 file:///存储库(通常不推荐 - 请参阅 The Subversion Book )时,您可以直接在提交时解决此问题。

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-change Hook 时更改修订的作者(参见 The Subversion Book)

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);
}

最后一个示例假设直接访问存储库的文件,但它绕过了存储库 Hook 以获得最佳性能。

关于c# - 如何在 C# 中使用 SharpSVN 库设置 SVN 提交的作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com