SVN的搭建与常用操作

1.SVN介绍

SVN是Subversion的简称,是一个自由开源的版本控制系统。

Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节

1.1 SVN基本概念

svn服务端 创建仓库_常用操作


复制-修改-合并方案(Subversion默认的模式)

在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。

锁定-修改-解锁方案

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。

1.2 SVN架构

svn服务端 创建仓库_svn服务端 创建仓库_02


Subversion支持Linux和Windows,更多是安装在Linux下。

svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。

svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。

因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

2.SVN的使用

SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。

SubVersion 官网:http://subversion.apache.org/

VisualSVN Server以及TortoiseSVN的安装及配置自行百度

创建仓库

svn服务端 创建仓库_svn服务端 创建仓库_03


创建用户创建用户

svn服务端 创建仓库_常用操作_04


进行权限控制

svn服务端 创建仓库_svn服务端 创建仓库_05

3 Tortoise SVN 常用操作

3.1 浏览仓库

创建一个文件夹,在文件夹中进行操作

svn服务端 创建仓库_版本库_06


输出创建仓库是的url,右键仓库可获取,输入用户密码进行权限认证。

svn服务端 创建仓库_svn服务端 创建仓库_07


在文件夹内右键选择点击checkout进行下载到指定本地位置

svn服务端 创建仓库_服务器_08


这时候我们就可以开发了,开发完成之后点击add在点击commit提交版本至仓库

svn服务端 创建仓库_svn服务端 创建仓库_09


svn服务端 创建仓库_版本库_10


SVN更新到历史版本

如果在开发工程中需要倒退到之前编写的版本,可以使用update进行回滚版本操作,也可以进行更新到最新版本的操作更新到最新版本

svn服务端 创建仓库_java_11


update进行回滚版本操作

svn服务端 创建仓库_服务器_12


svn服务端 创建仓库_svn服务端 创建仓库_13


SVN的删除操作

标记删除操作,本地文件会删除,我们需要进行提交(commit),才能真正从服务器删除

svn服务端 创建仓库_svn服务端 创建仓库_14

冲突问题与解决

多个用户同时操作同一个文件时,就可能产生冲突情况。

svn服务端 创建仓库_服务器_15


这个冲突产生后如何解决,我们可以采用手动Merge,解决冲突后,重新commit.

svn服务端 创建仓库_svn服务端 创建仓库_16

IDEA下 SVN 配置与使用

svn服务端 创建仓库_常用操作_17


share project也就是绑定仓库

svn服务端 创建仓库_版本库_18


下面的按钮依次是

1.Update Project 更新项目

2.Commit changes 提交项目上所有变化文件

3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑

的文件没有修改,则是灰色不可点击。

4.Show history 显示当前文件的历史记录

5.Revert 还原当前被修改的文件到违背修改的版本状态下

svn服务端 创建仓库_svn服务端 创建仓库_19

3. SVN规范

在visualSVN中创建仓库时,可以选择svn目录结构

svn服务端 创建仓库_java_20


svn服务端 创建仓库_常用操作_21


Trunk 主干目录,此目录下的文件为基准文件

Branches 用于开发的分支目录

Tags 用于发布的版本目录

假设有一个项目OA,我们完成了1.0版本,这时就可以打一个tags

后续我们在OA项目上添加一个新的模块(及时通讯),我们就可以开一个分支,又有一个公司需要在我们OA基础上添加

财务管理模块,我们又可以打一个分支。

我们后续针对OA的1.0版本在升级,我们不需要原来附加功能,就可以在原来的主干上继续开发,形成OA2.0版本,

开发完成后就可以在打一个tags

分支与标记

分支或标记规范
分支的定义规则: Project name+日期时间+功能点 Tags的定义规则 Project name+版本号 版本号定义为三段数字编号 xxx.xxx.xxx 第一个:革命性的产品升级版 第二个:新功能版 第三个:修正bug

打分支或标记

svn服务端 创建仓库_版本库_22


svn服务端 创建仓库_svn服务端 创建仓库_23


之后新建一个文件夹作为分支,绑定分支的url仓库,checkout下来

Tags一般是只读,它代表的是发布的版本,所以我们不要进行改变。

主干合并到分支

首先保证主干是最新的(先update),在分支这边进行操作

svn服务端 创建仓库_常用操作_24


svn服务端 创建仓库_常用操作_25


svn服务端 创建仓库_常用操作_26


上面的url为主干仓库的!下面的是分支文件夹!以上就是SVN的常用操作