C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在c#中使用SharpSVN库设置SVN提交的作者大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用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:/// repository(通常不建议使用 – 请参阅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挂钩时更改修订的作者(请参阅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),"MyName");

}

[2009-08-14]
更新的SharpSvn版本也允许这样:

using (SvnRepositoryClient rc = new SvnRepositoryClient())
{
   SvnSetRevisionPropertyRepositoryArgs ra;
   ra.CallPreRevPropChangeHook = false;
   ra.CallPostRevPropChangeHook = false;
   rc.SetRevisionProperty(@"C:\Path\To\Repository","MyName",ra);
}

最后一个示例假定直接访问存储库,但它会绕过存储库挂钩以获得最佳性能.

@H_772_45@

大佬总结

以上是大佬教程为你收集整理的如何在c#中使用SharpSVN库设置SVN提交的作者全部内容,希望文章能够帮你解决如何在c#中使用SharpSVN库设置SVN提交的作者所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。