总结:公司想把采码得到的数据通过svn 的方式,传到svn服务器,据说安全性高.而网上支持c#环境的库,常用的就是sharpsvn了.
这两天也在了解svn的一些机制,然而网上的相关具体 的资料相对较少,今天再次做个总结:
1: 开发环境: "vs2015"
2: sharpsvn 版本 1.80
3: svn 服务器版本:svnserve , version 1.6.11 (r934486)
环境搭建:
你可以直接从https://sharpsvn.open.collab.net/ 下载 ,也可以用vs的 Package Manager Console -->PM Install-Package SharpSvn.1.8-x64 ;
第二种可以自动加载需要的SharpSvn.dll 和SharpSvn.UI.dll.
SharpSvnUI绑定
SharpSvn.UI.dll 提供了一个默认的操作界面。例如上面的用户名和密码获取界面、证书确认界面。我们只需要将下面这两行代码写入我们程序中,SharpSvn 会自动挂载相对应的事件句柄。当需要用户名和密码获取或者证书确认时就会弹出相对应的界面。
using (SvnClient client = new SvnClient()) { SharpSvn.UI.SvnUIBindArgs uiBindArgs = new SharpSvn.UI.SvnUIBindArgs(); SharpSvn.UI.SvnUI.Bind(client, uiBindArgs); }
add 和commit命令有何区别
add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。简单的说就是将一新文件加入svn,你添加再提交后该文件就进入subversion版本中去了;
在开发中,如果创建了新的文件或目录,那么你需要先把它们纳入版本控制中。选中那个文件或目录并使用TortoiseSVN > Add… 即可。
commit 功能
SVN的提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作。
开发项目时,你会在工作拷贝中修改项目的代码,你总要把修改之后做过的改动又存回到项目仓库中去。这个过程称为“提交”。
提交是将你对工作拷贝所作的所有改动发送并存储到中央项目仓库中。
1: 提交时显示:Path is not a working copy directory 错误
“SharpSvn.SvnInvalidNodeKindException”类型的未经处理的异常在 SharpSvn.dll 中发生
其他信息: 'D:\Home\CheckPlatform\SvnDemo\SvnDemo\fhtp' is not a working copy
这个不是是svn服务器checkout的副本目录 个人认为 意思是svn服务器不认这个目录 .
checkout下来的文件夹放到你本地就叫做working copy
2:运行 return client.Add(path, args);
错误: 'D:\Home\CheckPlatform\SvnDemo\SvnDemo\ftp\hh.txt' is already under version control
个人理解是在本地已经打上已经上传的标记了,服务器已经存在此文件不能再用add的方式上传文件,所以要搞明白 add 和commit 和update的区别.
技术交流qq群:143280841