c#操作SVN

Posted AugestTest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#操作SVN相关的知识,希望对你有一定的参考价值。

        最近在做ranorex自动化测试有关事情,Ranorex是由C#语言实现的。自动化底层的框架已经有前人实现了,但是刚好没有对SVN这一块进行实现,所以自己就查了一些资料,目前已知的是有两种方式实现对SVN的操作:

(1)安装subversion工具,并将工具路径Subversion\bin\svn.exe加到环境变量中,然后使用组装命令行的方式操作SVN。

(2)使用SharpSvn.dll组件,在工程中引用此组件,调用接口操作SVN。


首先sharpsvn.dll组件:

using SharpSvn;

//当执行某个 svn 操作需要用户权限认证时,会调用 UserNamePasswordHandlers 中的句柄来获取用户名和密码

using(SvnClient client = new SvnClient())

   {

//使用username和pwd进行登录

client.Authentication.UserNamePasswordHandlers +=

new EventHandler<SharpSvn.Security.SvnUserNamePasswordEventArgs>(

delegate(Object s,SharpSvn.Security.SvnUserNamePasswordEventArgs ee)

        {

        ee.UserName = username;

        ee.Password = pwd;

        });

//当我们访问的 Svn 服务器使用的协议不是我们默认执行标准,svn 客户会让用户确认这个服务器是否值得信任并继续访问。此时,SharpSvn 会执行 Authentication 接口中的 SslServerTrustHandlers 中挂载的事件句柄。

client.Authentication.SslServerTrustHandlers += 

new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(

delegate(Object ssender,SharpSvn.Security.SvnSslServerTrustEventArgs se)

        {

        se.AcceptedFailures = se.Failures;

        se.Save = true;

        });

//从svn上下载对应的文件夹

client.CheckOut(new Uri(uri),downloadPath);

}

优缺点:(1)不依赖电脑环境,直接调用接口进行操作,操作可以使用X86和X64两种dll

(2)从svn上checkout必须要是文件夹,不能直接下载文件,不然会报错。目前从google和其他知识库张查找的信息都是必须要是文件夹。


使用Subversion进行操作SVN

要记住操作SVN的时候,必须要在命令行中添加日志信息

优缺点:(1)需要安装subversion安装包,并且安装路径必须添加到环境变量path下,并且自己在使用的过程中,好像不需要svn的用户名和密码就可以操作,自己没有深究,应该是默认使用TortoiseSVN保存的用户名和密码。另外可以对svn的文件和文件夹都可以操作,使用起来很简单。

(2)、必须依赖电脑环境,编写的项目不具有可复制性。

以上是关于c#操作SVN的主要内容,如果未能解决你的问题,请参考以下文章

C# 批量处理文件(SVN版本控制版)

SVN操作手册(part3)——SVN操作

svn checkout操作

SVN基本操作

SVN实测常用操作-记录操作大全

SVN实测常用操作-记录操作大全