我写一些C#代码在一次通过执行多个进入SVN信息,很像工具svnmucc。到目前为止,我一直在使用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不具有提供你从Subversion凭据的API。它主要是实现了libsvn_client的API,并在该水平存在于该数据的访问权限。

SharpSvn从当这些需要凭证颠覆库得到的回调;在大多数情况下后内建密码存储身份验证失败。

如果您svnmucc代码也使用Subversion的API,你可以插件的颠覆预定义的认证处理..

SharpSvn本身不具有svnmucc支持尚未。 (有一些谈论别人谁喜欢把它添加到SharpSvn,但我还没有得到关于这个的任何音讯)

其他提示

而对方的回答仍然是成立的SharpSvn的所有当前版本,SvnMucc支持刚刚降落在SharpSvn的开发代码。所以不久将有可能像从净操作执行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