软件代码管理的有力工具-版本控制工具SVN安装

      要讲SVN,我们就不能不提版本控制。做软件的朋友经常会有这样的体验,软件需要修改,但又需要将每个修改过的版本存档起来以备查阅。但是手工的存档工作不仅繁琐,而且容易出现差错。进行团队开发时,很多人合作进行同一个项目,免不了多人修改同一文件,这样一来,每个人手头上的代码同步起来,就成为了一项费时费力的工作。为了解决这些问题,软件工程师们发明了版本控制工具。

    说起版本控制工具,轻量级的有微软的Visual SourceSafe,用于小型项目和本地局域网合作,还是相当方便的,但不支持互联网合作,而且只能在windows平台下使用。骨灰级的有CVS,它是一个强大并且健全的版本控制工具,许多开源项目如Mozilla,GIMP,XEmacs,KDE,和GNOME等,都是在其上面完成的。SVN(subversion)被称为CVS的接班人,目前,绝大多数开源软件都使用svn作为代码版本管理软件。

    下面我们以Windows平台为例,介绍SVN的使用。

    使用SVN,我们必须先架设一台SVN代码服务器,安装方式有两种,一种是依赖于Apache,另一种只安装为系统服务,其中依赖于Apache的方式,可以使用Web管理,安装为系统服务,只能使用客户端进行管理。

    下载SVN,从http://subversion.tigris.org/getting.html#binary-packages从这里下载最新版本的SVN服务器软件。我们选择一个链接,进入下载。写这篇文章时,最新版本为Subversion Server and Client v1.6.4。

    完成下载我们将得到一个MSI格式的安装包,允许它执行安装。默认安装位置为C:\Program Files\Subversion。

    下载SVN客户端TortoiseSVN,从http://tortoisesvn.net/downloads下载即可,有简体中文语言包。

    接下来,我们需要创建一个版本库。所谓版本库,就是服务器上储存所有代码的仓库,SVN就负责在这些仓库中存取管理代码。在一个合适的文件夹中创建我们的版本库,例如D:\SVN。进入这个文件夹,在这个文件夹里右键,我们就能看到TortoiseSVN的菜单了。选择在此创建版本库。这时候我们就可以看到新建的版本库了。

查看图片
查看图片

     下面我们需要把SVN注册为系统服务,成为真正一个服务项。打开CMD,执行

sc create SVNService binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\SVN" displayname= "SVNService" depend= Tcpip start= auto

    注意等号一定要后面留一个空格前面不留空格。C:\Program Files\Subversion\bin\svnserve.exe为SVN安装路径,D:\SVN为要服务的版本库。
   当服务注册完成后,使用net start SVNService命令启动SVN服务器。
   编辑版本库里面的passwd文件,为此版本库添加用户。用户名=密码,按照这种格式填写,例如

[users]
user1 = password1
user2 = password2

    经过这样的设置以后,SVN就可以使用了。在我们的文件夹工作文件夹里面,我们可以使用鼠标右键,选择检出,填写一个SVN路径即可将版本库中的最新文件储存到工作文件夹。

查看图片
查看图片

    这时,一个文件夹上就会被附上一个对号。当此文件夹内的文件发生改变时,文件夹上的图标也会跟随变化,如红色感叹号代表已经修改,蓝色的加号代表新增的文件等等。我们可以在这个文件夹中使用右键,选择提交,这样,本地的变化就会被自动合并到服务器上的版本库中。如果想要从服务器上获得代码的最新版本,我们可以在右键的菜单中选择更新。

查看图片

    在团队开发中,如果有人同时编辑了同一文件,怎么办?如果两人修改的文件是不同部分,那么SVN会自动合并更改,但如果两个人同时修改了同一部分,就会产生冲突。关于冲突的解决,一般情况下采用人工比较进行合并。为了避免冲突的发生,我们可以使用“锁定——解锁”的方式进行团队开发。

   具体的操作方法是,在要锁定的文件(夹)上右键,选择TortoiseSVN,在下级菜单中我们可以看到获取锁定命令,单击它我们就可以锁定一个文件(夹)。在锁定期间,其他人无法对此文件(夹)进行提交,直到被解除锁定。

   在实际的使用中“编辑——合并”方案和“锁定——解锁”方案各有优劣,可以根据实际需要选择使用。

   好了,SVN的基本使用就介绍到这里,想要了解更多内容,请查看Subversion 和 TortoiseSVN 手册。

   版权所有,转载请注明出处。