SVN server的搭建

时间:2022-12-21 15:40:20

当做大的项目是,svn是代码管理的好工具,假设是用自己的server,那么须要搭建SVNserver。

Subversion是一款很优秀的svnserver工具,笔者採用VisualSVN
server ,由于它集成了apache,不用再进行过多的配置。

首先下载安装 VisualSvn Server

SVN server的搭建

选择VisualSVN ,然后下载。

SVN server的搭建

Download 之后,进行VisualSVN的安装

SVN server的搭建

点next

SVN server的搭建

继续next

SVN server的搭建

    SVN server的搭建

location 选择安装VisualSVN Server 的文件夹

Repositories 是代码版本号位置

Server Port为svnserver的port,默觉得443,启用https连接

安装完毕后

SVN server的搭建

接下来我们安装TortoiseSVN,双击安装包,进入下一步.如图:

SVN server的搭建

点击Next,进入下一步,如图:

SVN server的搭建

选择接受,然后点击Next,进入下一步,如图:

SVN server的搭建

选择安装路径,然后点击Next,进入下一步,如图:

SVN server的搭建

点击Install,開始安装,如图:

SVN server的搭建

等待安装完毕,安装完毕后如图:

SVN server的搭建

接下来我们安装中文简体语言包,这个很easy,一路Next即可,就不截图了.语言包安装完毕以后在桌面随意空白地方单击鼠标右键,会在右键菜单里找到SVN,如图:

SVN server的搭建

选择设置,进入下一步,如图:

SVN server的搭建

在右边的语言里面选择中文简体,然后点击应用,确定,汉化即完毕,如图:

SVN server的搭建

首先打开VisualSVN Server Manager,如图:

SVN server的搭建

能够在窗体的右边看到版本号库的一些信息,比方状态,日志,用户认证,版本号库等.要建立版本号库,须要右键单击左边窗体的Repositores,如图:

SVN server的搭建

在弹出的右键菜单中选择Create New Repository或者新建->Repository,进入下一步:

SVN server的搭建

输入版本号库名称,勾上Create default structure复选框(推荐这么做).点击OK,版本号库就创建好了,版本号库中会默认建立trunk,branches,tags三个目录,如图:

SVN server的搭建

这时候我们将项目导入到版本号库中,找到你的项目目录,在项目目录上点击鼠标右键,找到SVN菜单,选择导入,如图:

SVN server的搭建

在弹出的对话框中填上版本号库URL,这个URL能够从VisualSVN Server Manager中获取,在你的版本号库上单击右键,选择Copy URL to Clipboard,这样就把版本号库URL拷贝到你的剪贴版了.如图:

SVN server的搭建

将复制的版本号库URL粘贴上,在URL后面加上trunk子路径.然后在导入信息里面填上导入信息"导入项目到版本号库".如图:

SVN server的搭建

点击确定,所选中的项目就会被导入到版本号库中.如图:

SVN server的搭建

项目导入到版本号库以后,不能随便让谁都可以读写版本号库,所以须要建立用户组和用户.

在VisualSVN Server Manager窗体的左側右键单击用户组,选择Create User或者新建->User,如图:

SVN server的搭建

在弹出的对话框中填写User name和Password,然后点击OK,如图:

SVN server的搭建

用同样的方式分别创建用户Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六个用户,分别代表3个开发者,两个測试人员和一个项目经理,如图:

SVN server的搭建

然后我们建立用户组,在VisualSVN Server Manager窗体的左側右键单击用户组,选择Create Group或者新建->Group,如图:

SVN server的搭建

在弹出窗体中填写Group name为Developers,然后点Addbutton,在弹出的窗体中选择三个Developer,增加到这个组,然后点Ok,如图:

SVN server的搭建

用同样的方式创建组Managers,Testers,如图:

SVN server的搭建

接下来我们给用户组设置权限,在MyRepository上单击右键,选择属性,如图:

SVN server的搭建

在弹出的对话框中,选择Security选项卡,点击Addbutton,选中Developers,Managers,Testers三个组,然后加入进来,给Developers,Managers权限设置为Read/Write,Tester权限设置为Read Only,如图:

SVN server的搭建

到此,服务端就完毕了.

接下来,我们用client去检出代码,在桌面空白处单击右键,选择SVN检出,在弹出的对话框中填写版本号库URL(详细获取方式,上面讲上传项目到版本号库的时候讲过),选择检出文件夹,点击确定.如图:

SVN server的搭建

開始检出项目,如图:

SVN server的搭建

检出完毕之后,我们打开工作副本目录,会看到全部文件和目录都有一个绿色的√.如图:

SVN server的搭建

至此,创建版本号库和使用TortoiseSVN导入项目,检出项目已经介绍完成.

此时在一个局域网的人就能够用SVNclient提交代码了。

笔者的server是阿里云主机,所以必须得让VisualSvn sever能让外网訪问,仅仅要把地址改为 https://你的域名或IP/svn/yc/

yc是建立的版本号库。

然后就能够通过浏览器web的方式或者 svnclient提交代码。可是当採用https连接时,笔者的svn始终连不上visualsvn,已连接就崩溃,最后笔者仅仅好换成了HTTP连接,自己定义port为8080

可是接下来的问题是,笔者的目的是用svn管理serverapache下的站点文件夹,方便的提交代码,并更新站点文件夹。

当笔者用svn提交成功时,发现并不能改变站点文件夹下的文件。

百度了好久才发现,server端的ViusalSVN须要编辑一个hooks钩子,把svnclient提交的代码更新到对应的站点文件夹。而不是它的版本号仓库。

详细方法是,在server和client分别用svn checkout,注意要同一时候检出,以便版本号一样.然后编写svn 钩子

实施:

1.创建web网站文件夹 d:\www

2.将项目检出到d:\www(可在server上安装tortoiseSVN来检出)

3.右击我的电脑--管理--服务,找到visualSVN serve ,右击选择属性---登陆--选择本地系统用户(同意与桌面交互)

保存,重新启动visualsvn服务

4.在代码库的hooks文件夹里新建post-commit.bat,贴入下面代码:

1 @echo off
2 SET
REPOS=%1
3 SET
REV=%2
4 SET
DIR=%REPOS%/hooks
5 SET
WORKING_COPY=D:\www
6 SET
PATH=%PATH%;
7 svn
update %WORKING_COPY% --username admin --password admin

admin admin是你的svn登陆帐户password。 



PS.建议你须要把svn安装文件夹下的bin文件夹加入到你的环境变量中。

假设小乌龟svn提交时 提示 fail start hooks, 那么应该是VisualSVN Server 读写权限的问题。

解决的方法:  在windows 服务中,改动VisualSVN服务的登录账号为本机。。

就能够了。