作者:东风化宇 来源:http://www.flyne.org/article/851

文章插图
一、SVN工作原理
SVN(SubVersion)的基本工作思路是这样的:在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序,由源代码库管理员统一管理这些源程序 。
每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地(Checkout),然后用户可以在本地任意修改,最后用svn命令进行提交(Commit),由svn源代码库统一管理修改 。如下图:

文章插图
- SVN服务器:运行SubVersion服务的计算机,SubVersion支持linux和windows,更多的是安装在Linux下 。SVN提供服务有两种方式(运行方式):独立服务器和借助Apache服务器,分别使用SVN协议和Http协议 。
- SVN客户端:用户通过SVN客户端同SVN服务器打交道,SVN客户端分为命令行工具和图形化工具 。最流行的客户端是TortoiseSVN 。也可以在Eclipse中使用SVN插件 。

文章插图
二、SubVersion的使用
可以在http://subversion.apache.org/packages.html下载SVN并安装(本文使用windows版本,过程不多说) 。在SVN中集成了服务器端和客户端组件:
- 服务器组件(管理员用):svnadmin、svnserve
- 客户端组件(程序员用):svn
友情提示:安装完SVN后,通过”svnadmin –version”验证是否安装成功 。如果出现错误“svnadmin不是内部或外部命令”,则需要手动将SVN的bin目录加入到path环境变量下 。
1、创建SVN仓库
1)先创建一个目录:E:svnreporepoDemo1 。后面就使用该目录作为SVN仓库 。
2)创建仓库:svnadmin create E:svnreporepoDemo1 。创建仓库后的目录结构如下:

文章插图
3)启动SVN服务:svnserve -d -r E:svnreporepoDemo1,如下图:

文章插图
这样就启动了repoDemo1这个仓库的服务(单仓库),如果在svnrepo目录下还有其他仓库,且要同时启动多个仓库,执行svnserve -d -r E:svnrepo即可(多仓库) 。
一般情况下,访问SVN仓库的URL格式形如:svn://192.168.1.6/repoDemo1,但如果启动的是单仓库,则URL直接用:svn://192.168.1.6表示 。svn协议的默认端口号为3690 。
小技巧:如果需要频繁使用该仓库,则可将该SVN服务注册成windows服务,这样在计算机开机时就可以启动该服务 。如下图:

文章插图
删除该windows服务:sc delete svnService 。
2、SVN客户端操作(命令行)
重点:checkout(检出)、commit(提交)、update(更新)
1)在E盘下建立user1、user2两个目录,模拟两个协同工作的用户的workspace 。
2)检出:第一次和SVN服务器交互时,需要使用checkout将仓库检出到本地 。

文章插图
说明:检出一次,就建立了与SVN仓库的连接 。
3)提交:commit
在user1目录下新建Demo1.JAVA文件,将该文件提交到SVN仓库 。下图演示了三种典型的错误提交 。

文章插图
4)更新:update
切换到user2的工作空间(user2目录下),user2第一次使用SVN仓库,需要检出 。user2修改Demo1.java后提交 。切换到user1目录,更新(update) 。

文章插图
5)删除与恢复:delete、revert

文章插图
说明:如果delete后,提交到服务器(commit),则服务器上的数据也被删除了(慎用) 。
三、SVN的目录约定
- /trunck:开发主线
- /branches:支线副本
- /tags:标签副本(一旦创建,不允许修改)
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本(release)开发告一段落(开发、测试、文档、制作安装程序、打包等结束后),代码处于冻结状态(人为规定,可以通过hook来进行管理) 。此时应该基于当前冻结的代码库,打tag 。
推荐阅读
- 京东|三大电商平台创始人均已卸任CEO:新时代开启
- 基于GateKeeper网关的微服务架构
- 手机直播app平台搭建的简易方法
- 自媒体1w推荐量却只有100多阅读量?莫慌!平台算法了解一下
- 这14个信息流平台适用哪些产品?你知道嘛?
- 微软|Windows 11放心升 微软:Build 22593水印没影响
- 如何从Apache官网下载windows版Apache服务器
- Windows 10之查询OEM产品密钥的三种方法
- windows+Linux 12款常用的Web服务器软件整理
- 直播|国内又一直播平台无了!腾讯企鹅电竞宣布退市:6月7日停运
