一、引言
笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文,不是很适合来作为入门者使用;毕竟,TortoiseSvn是一个客户端,服务器端的配置也很重要。
一年前,笔者刚刚毕业,初入公司,在进行开发时,由于没有进行软件代码版本管理,导致的结果是
- 软件一天一个版本
- Bug日益增加且隐藏很深
- 代码无法向前回溯
- 几个月前修正过的Bug在几个月后又重新出现
由于最近公司决定架设SVN源代码服务器,来解决以上问题,故笔者经过一段时间的摸索和使用,便有了此文。
二、学习本文先决条件
如果作为读者的你符合以下情况,那么本文可以对你起到一个很大的帮助作用:
- 具备基本的软件开发知识
- 了解Client/Server模型
- 正在被日益更新的软件代码版本所困扰
本文旨在指导读者如何利用现有的软件工具进行软件代码版本管理工作,如果你对软件版本控制与管理,维护与备份较为感兴趣,可以阅读此文来获取一定的知识。
三、安装SVN服务器端软件
首先,你必须下载两款软件包:VisualSVN Server和TortoiseSVN,两者都是开源软件,至于在哪里下载,百度或谷歌之,尽量使用最新版就好,我使用的版本如下:
服务器端:VisualSVN-Server-2.5.5.msi
客户端:TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi
双击以下图标,打开安装包:
单击“Next”
勾选“I accept...”,然后单击“Next”
选择第一个“安装VisualSVN Server(可视化SVN服务器)”和“Management Console”
Location是你的安装目录,C盘或D盘都可以,Repositories是你的源代码仓库,也就是你SVN帮你管理代码放置的位置,这里我选择放置在D盘根目录下,将“Use secure connection”复选框的勾去掉,然后在Server Port中填写8080(填其他端口号也可以,但是确保该端口号未被占用),在这里不使用安全连接的原因是,它会导致通讯速度减慢(PS:当时在公司配置时使用的secure connection,每次Checkout一次要15秒多的时间,无法忍受),然后单击“Next”:
单击“Install”
等待……
Finish!
单击“Finish”后,会启动VisualSVN Server,可以看到,它的Status是:
VisualSVN Server is running
Server URL is http://motor-109133.hanslaser.com:8080/svn/
至此,服务器端软件安装完毕!
四、SVN服务器配置项目
右键单击“Repositories”,选择“Create New Repository...”
在“Repository Name”下方文本框填入“TestSvn”(作为测试用),将“Create default structure(trunk,branches,tags)”选项勾选上,单击OK
可以看到在Repositories树下面,有一个TestSvn库,这个TestSvn库中有三个文件夹:
- branches(分支,修改特殊功能或者新功能的分支代码,可与主干进行合并)
- tags(标记,设定milestone版本)
- trunk(主干,存放当前正在编辑的代码工程)
开始新建用户(用户组管理请各位自己研究),右键单击“Users”,选择“Create User...”
在“Create New User”对话框中填写账号密码,如图所示:
可以看到Users文件夹下面有了一个用户:
记得将Repositories仓库的属性修改一下,因为它默认的属性是Everyone Read/Write,意思是任何人都可以对该库中的内容进行读写,现在我们要将其修改成Everyone No Access,然后再自己添加用户,给予用户读或写的能力,右键单击“Repositories”,选择“Properties”:
选中“Everyone”,然后勾选“No Access”:
现在开始为TestSvn添加一个用户,也就是刚刚添加的账号:zhengshuo,右键单击“TestSvn”,选择“Properties...”:
单击“Add...”,选择Users下的zhengshuo,单击OK
这样用户zhengshuo就被添加到TestSvn项目中(即目前只有zhengshuo才有对TestSvn的读写权利):
五、安装SVN客户端软件
双击如下安装包:
单击“Next”
选择“I accept...”,单击“Next”
选择安装目录,单击“Next”:
开始Install:
Wait...
安装完毕!
六、从SVN服务器签出工程代码
在任意一个位置建立一个文件夹TestSvn,比如说D盘,右键单击该文件夹,选择“SVN Checkout...”
填写好“URL of Repository”,格式是,端口号是之前设置好的8080,IP地址填写你当前电脑的IP地址,然后单击OK:
SVN会提示输入账号密码进行验证,因为zhengshuo这个账号在服务器中已经添加,所以可以用该账号进行登录:
验证成功后,会提示“Checkout Finished!”:
七、向SVN服务器签入工程代码
第一次签出会获得当前项目TestSvn中的目录结构,即branches,tags和trunk:
我们的代码要放在trunk(主干)文件夹中,代码如下:
右键单击TestSvn文件夹,选择“SVN Commit...”
填写好上传理由Message,单击OK
提示“Commit Finished!”
八、后记
本文讲述的内容虽然较为简单,但是,它却给了初学者一个最佳的切入点,让初学者能够在最短的时间内,对SVN源代码服务器的搭建和初步使用有一个通盘的了解。
通过对SVN源码服务器的搭建,也让我明白了软件代码版本管理的重要性,正所谓君子善假于物也,我们作为一个合格的软件工程师,要善于合理利用身边一切可以利用的资源,来优化我们的工作环境,提高工作效率,为公司为自己写出Bug较少的完美软件。(全文完)