团队开发利器,图文详解windows下创建svn服务器,visualSVN服务端;tortoisesvn;传了30多遍还不知道这次可能传上去

来源:互联网 发布:夜访吸血鬼 结局 知乎 编辑:程序博客网 时间:2024/04/28 11:54

先前的搭建的svn服务器的机子给搬走了,不好意思去找,于是乎打算花个10分钟重新搭建下,结果网上的帖子或许太古老,又或许太坑爹,我觉得吧像这种工具类的文章,一定得图文解释清楚不可省略,毕竟内容也不多。PS:CSDN传图片真是卡,这篇文章上传了30多遍还不知道这次可能传上去

安装
 官方网站上获取一个版本http://www.visualsvn.com/server/download/
然后只需要nextok;

当然有些地方是可以配置一下的,下面列出一些需要简单设置的界面



当然服务器和管理控制工具都装上


这里可以修改代码库的保存位置,默认为"D:\Repositories\".
也可以修改访问代码库的方式httphttps.
最下面是选择用户认证是使用windows用户还是Subversion自己的认证.
安装完后的界面

 

 第一步、创建用户组

开发组,管理组,测试组,等等

 
第二步、当然是创建用户

 

 第三步、当然是对用户进行分组,编辑用户组

 


最后是创建代码库:在Repositories上右键-->Create New Repository-->创建第一个代码仓库


 当然也可以创建多个代码库,但是我觉得这样不方便,比如在MyEclipseTortoiseSVN客户端连接SVN服务器时无法列出所有项目,只能列出当前一个项目,不太方便,后面会说到.
这里我使用的是只创建一个代码库repos,在这个代码库下面再创建多个项目的文件夹,对第每个项目文件夹进行权限控制。

 


这里在代码库repos下创建了三个文件夹,代表三个项目。(注意客户端导入项目时,最外层文件夹替换成这里的文件夹)
上面的体力活摘自别人;

设置权限可以在创建时,也可以后期修改,对应到每个用户

 

客户端操作,OK。接下来导入,导出,修改文件什么的可以在客户端完成,服务端IP192.168.2.48

 导入项目


输入用户名和密码,这个是在服务端设置的


 


导出项目



更新和提交



 

 

 

在使用过程中遇到的问题:
1
安装VisualSVN Server过程中出现错误,无法启动VisualSVN服务
安装到最后一步出错,
提示为VisualSVB服务无法启动,查看日志,提示:
“Product: VisualSVN Server 2.1.4 — Error 1920. Service ‘VisualSVN Server’failed to start. Please check VisualSVN Server log in Event Viewer for moredetails.”
这个是服务账户启动服务失败,可能是bug,解决方法:
打开系统服务services.msc,发现VisualSVN Server没有启动成功:

 把登录身份改为本地系统账户后,就可以启动了,也安装成功了。
2
、使用TortoiseSVN客户端浏览版本库
提示:版本库永久移动到 https://192.168.1.100/svn;请重新定位

1)
IE浏览器里通过https://192.168.1.100/svn 可以正常浏览所有项目
2)
使用TortoiseSVN 浏览 https://192.168.1.100/svn,提示: "版本库永久移动到"https://192.168.1.100/";请重新定位
3)
使用TortoiseSVN浏览 https://192.168.1.100/svn/test 又正常
4)myeclipse
中也是无法浏览所有项目,报301Moved Permanently的错误,只能单个项目浏览、导出和同步。
不知道问题出在哪,网上也找了很多解决办法,都不是
后面也且发现一个问题,就是使用TortoiseSVN可以把任何项目导入SVN根目录中,因为原先没有在代码库下创建文件夹表示每个项目,而是使用TortoiseSVN直接导入项目的(比如把项目machine_es直接导入https://192.168.123.100/svn/repos/machine_es,注意我没有创建machine_es的文件夹,这样也可以导入),所以无法对每个导入的项目进行权限控制,只要对整个仓库的权限的用户都可以把任何项目导入仓库的任何地方,这不是很危险?
后来发现是创建代码库的方式不正确,原先的流程是:
1
、创建代码仓库
2
、直接创建TortoiseSVN导入项目
正确的方式应该是:
1
、创建代码仓库
2
、在代码仓库下面以项目名称创建文件夹,当然也可以通过TortoiseSVN在根目录下创建文件夹
3
、使用TortoiseSVN导入项目

这样所有问题都没有了,即可以控制每个项目的权限,客户端也可以列出所有项目
3
、导入项目的时候,不能把classes目录下的编译类文件导入SVN库中,不然在同步的时候会报错
org.tigris.subversion.javahl.ClientException:Working copy not locked;this isprobably a bug,please report
svn:Working copy'D:\workspace\machine_es\WebRoot\WEB-INF\classes\com'is missingor not locked

原来是myeclipsesrc文件夹中的.svn文件夹也"编译"WEB-INF/classes中去了,而复制过来的.svn中存储的是src文件夹中的版本信息,从而导致在更新时出错。
首先在导入SVN库时,要删除classes下的com目录;
其次设置myeclipse:

myEclipse中的项目右键->Properties->JavaBuildPath菜单,在右侧面板中的"Source"选项卡,在Excluded中加

"**/.svn/**"

也就是把.svn文件夹从编译路径中排除,这样就不会出现上面的问题了。

 

10 0