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的主要内容,如果未能解决你的问题,请参考以下文章