VisualSVN server搭建Win-SVN服务器

    由于本人所在公司最近内网服务器的变更,有幸参与并配置了svn服务器,由于对svn这种版本控制工具不是很熟悉,平时也就是updatecommit,对于内部的一些结构特点没有真正了解过,而且对于服务器端的配置也是一头雾水,但互联网的强大为我增添了很多助力,虽说初来乍到的走了不少弯路,但好在最后达成目标。废话不多说,下文就简单介绍一下svn的特点和其作为服务端的配置。

初识

    SVN,版本控制工具,(相信开发者们听到这个名词一定觉得很熟悉,类似于git,但与它不尽相同)主要用于多人协作开发同一项目的场景,是Subversion的简称,是一个开放源代码的版本控制系统。svn作为服务器运行方式有两种,一为独立服务器,二为借助apache(这里仅为了解,不作过多介绍)。

工作流程

    svn是集中式代码管理,集中式管理的核心服务器。下图简要说明svn的工作流程:

svn流程图.jpg

                                                                               图来源于网络
所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者便无法工作。
上图所示中文翻译如下:

  1. morning         开发者从svn服务器update代码

  2. work               (coding || commit)  ->  (coding || commmit)  ->  (coding || commit)...

  3. before work update -> commit yourself code

以上就是经典的svn流程。

优缺点

    本文既然是说SVN的,自然就少不了SVN的优缺点,是的,每种工具都有优缺点,世界上并不存在完美之物。

优点

  1. 管理方便,逻辑明确,符合一般人思维

  2. 易于管理,集中式管理更能保证服务器安全性

  3. 代码一致性度非常高

  4. 适合人数不多的项目开发

  5. 安全性:SVN站在更高层次上对安全产品,从系统和控制的角度进行了有机无隙的整合。

缺点

  1. 对于服务器的依赖性太大(如果不能连接服务,就不能进行update || commit操作)

  2. 平时开发过程中,稍有不注意就会出现代码冲突的问题,好几次都跳了这个坑

综上所述,利用SVN开发优点还是蛮多的,缺点嘛,其实也不是不能避免,只要能够善于利用它的优点做事情就ok了。

下载与安装

下载

这里需要下载两个文件,一个是VisualSVN server的服务端,另一个则是TortoiseSVN的客户端,这两个搭配起来用,相得益彰嘛。下载地址:VisualSVN和TortoiseSVN。在页面的最下方,滚轮一直滚到最下方就是。
下载1.jpg

上图点击对应的链接去下载即可,如下

下载2.jpg

下载3.jpg

安装

安装1.jpg

                                                           安装1

安装2.jpg

                                                           安装2

安装3.jpg

                                                           安装3

安装4.png

                                                           安装4

安装5.png

                                                           安装5

启动与基本操作

VisualSVN Server服务端工具主界面:

主页面.png

创建仓库

    以下高能,开启图文并茂模式:

新建1.png

新建2.png

新建3.png

新建4.png

新建5.png

新建完结.png

创建用户

创建用户1.png

创建用户2.png

创建用户组

创建用户组1.png

创建用户组2.png

创建用户组3.png

创建用户组4.png

创建组5.png

拉取仓库项目

    上面对于SVN的操作流程有了简要介绍,这里再详细介绍一下:

  1. 拉取仓库文件 首先获得项目仓库地址,SVN客户端(TortoiseSVN)安装完之后在本地项目目录下(或者说计算机任意位置都行)右键点击菜单里会有SVN Checkout这个栏目,点击,输入仓库项目地址,完成拉取

  2. 拉取完项目之后,在项目中进行添加文件或者修改文件,update之后,右键commit上传

获取仓库项目路径

拉取项目1.png

复制到粘贴板,打开checkout界面,输入刚刚复制的仓库项目地址,点击ok

checkout.png

拉取成功.png

更新项目文件到svn仓库,commit操作

commit.png

commit_ok.png

然后我们去另一个目录下,check仓库项目:

other_update.png

other_update_ok.png

以上,基本的个人svn服务搭建已完成。

多人协同开发

    上面说明的是以个人计算机为svn服务的搭建,相信也能看到我的svn仓库的地址是http://clearNaturn:88/svn/test/,这个URL好像哪里有点不对,下面做出解释:

  1. clearNaturn 这个是我计算机名

  2. 88                 svn端口(PS:80端口一般会被web服务(apche、nginx等)占用)

    那么如果多人开发的时候,显然用我们这个URLCheckout仓库项目显然是不行的,如果要做到被多人同时调用,那么在内网或者在外网中就要做到以IP的形式进行调用,我们修改其中的配置项即可:

  1. 打开VisualSVN server的主界面,右键点击左边栏VisualSVN server(local)->properties或者点击操作->properties

  2. 在弹出的界面中选中Network,修改Server name本机IP即可。

network.png

本地ckeckout一下:

update_servername.png

至此,以VisualSVN server服务端的svn配置已完成,根据步骤走一步一步来,相信是傻子都会了,哈哈哈~

仓库项目同步更新到指定目录

    老实讲,以上所陈述的东西真的是网上一搜一大把教程,接下来才是重点。svn仓库项目同步更新指定目录,相信很多地方也都可以用得到(不知道用得到的地方多不多,反正我司是用到了),也不用测试者update到本地测试了,总之是一个很好的辅助功能。下面来介绍一下实现这一目的所需要的步骤:

  1. 利用hook(钩子)功能

  2. 利用批处理功能

  3. 找到仓库所在的目录,打开要实现同步更新的项目目录,进入hooks文件目录,新建一个post-commit.bat作为批处理文件

  4. post-commit.bat批处理文件里就写svn checkout 仓库项目目录 要同步更新的本地项目路径 --username 用户名 --password 密码

  5. 举个post-commit.bat文件具体要写什么的例子:svn checkout http://127.0.0.1:88/svn/test/ E:\svn\test --username cmh --password cmh

这样就大功告成了。

拓展

指定仓库项目权限

    在公司中,对某个项目的操作应该不会只针对某一类人(开发人员),如果公司还有测试人员的话,那么他们就应该没有写入文件的权限,只有读取文件的权限,开发人员才具有读/写权限,所以为了减少不必要的麻烦,VisualSVN Server也具备这样的功能,为某个项目分配相应的人员或用户组,并指定其具体权限:
打开的VisualSVN Server界面,选择仓库中的某一个项目,右键点击并选中properties

权限1.png

选择当前项目可访问的用户组和用户名并配置其权限

权限2.png

参考

  1. SVN服务器搭建和使用 系列

添加新评论