SVN之快速入门
一、SVN概述
SVN是Subversion的简称,是一个开源的版本控制系统。
Subversion将文件存放在中心版本库里,版本库像是一个普通的文件服务器。
版本库可以记录每一次文件和目录的修改情况,可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。
二、SVN的使用
1.下载软件
①.SubVersion官网 ,下载VisualSVN服务端和TortoiseSVN客户端。
下载VisualSVN服务端
下载TortoiseSVN客户端及其语言包
2.安装VisualSVN服务端
若安装出现2503,2502错误提示,是由于权限不足的原因,通过 :“ msiexec /package 安装包路径” 该方式安装。
初始界面
创建工程目录
创建用户
创建组,向组添加成员
分配权限,对成员或组分配相应权限
3.安装TortoiseSVN客户端
基本是一键式地傻瓜安装,但切近需要将command line dent tools选择为Will be installed on local hard drive
三、Tortoise SVN常用操作
1.浏览仓库
输入工程项目版本控制仓库地址
正常情况下,在浏览仓库时会要求录入username与password进行认证
可以清空svn客户端的缓存数据
2.checkout检出操作
右键SVN检出,检出svn服务器上的项目
3.add添加操作
创建一个文件,右键TortoiseSVN ->增加 ,将该文件交由svn管理
4.commit提交操作
右键SVN提交,将添加到svn管理的文件提交到svn服务器
5.update更新操作
update更新操作,将svn服务器上的内容更新到本地
6.更新到历史版本
查看提交记录日志,右键Tortoise SVN->显示日志,在日志列表选择某个日志版本进行检出回退。
7.delete删除操作
标记删除操作,本地文件会删除,进行提交后,才能真正从服务器删除。
8.revert还原操作
当对某个文件进行了修改后,想恢复到未修改状态时,可以使用revert还原操作
9.Import与Export操作
Import:将本地资源导入到svn服务器,Export:导出项目,和checkout的区别是它不存在.svn隐藏文件
9.冲突与解决
当多个用户同时操作同一个文件时,就可能产生冲突,产生冲突后可采用手动Merge合并方式,解决冲突后,重新commit。
浏览版本库,修改文件内容。
在项目工程文件夹中修改文件提交,此时将产生冲突,需要先更新解决冲突。
新建文本文档.txt :它是服务器上的文件与本地文件合并
新建文本文档.txt.mine :它是本地修改后的文件
新建文本文档.txt.r4 :它是修改前的文件
新建文本文档.txt.r5 :它是对方修改后的文件
.
选择冲突文件,右键TortoiseSVN->选择编辑冲突。
解决冲突后,点击按钮:标记为已解决,此时再执行提交操作。
四、SVN在IDEA中的配置与使用
1.配置SVN
在idea中使用Svn首先需要安装了TortoiseSVN,然后进行配置。
2.share project操作
将一个项目工程添加到svn仓库
添加svn仓库地址,以及输入该仓库分配的有权限的账户登陆认证
选择该项目工程放在那个目录结构
项目工程添加svn后,就会出现一系列与svn操作相关的菜单。
常用操作菜单:
1.Update Project :从svn服务器获取变化文件,更新项目
2.Commit changes: 提交项目上所有变化文件到svn服务器
3.Compare with the Same Repository Version :当前文件与服务器上该文件某版本的内容进行比较。
4.Show history :显示当前文件的历史记录
5.Revert :还原当前被修改的文件到未修改的版本状态下
6.Local Changes: 本地修改过的文件都会出现在这里
7.Repository svn:仓库所有提交记录
8.Incoming :本地还没有更新的别人提交的代码
3.commit操作
提交项目上所有变化文件到svn服务器
4.Update Project操作
从svn服务器获取变化文件,更新项目
5.checkout操作
从svn服务器checkout检出项目
6.ignore操作
将文件/目录添加忽略标记,提交时自动忽略标记文件/目录
7.冲突与解决
Incoming :本地还没有更新的别人提交的代码
产生冲突,一般merge合并手动进行解决冲突
8.查看提交历史
五、SVN规范
1.SVN目录规范
在visualSVN中创建仓库时,可以选择svn目录结构
Branches :用于开发的分支目录,在某个完成的项目上添加一个新模块,此时就可以开发一个分支,开发完成合并到主分支。
Trunk :主干目录,此目录下的文件为基准文件。
Tags :用于发布的版本目录,对某一阶段完成的项目打一个Tags。
2.分支与标记
分支的定义规则: 项目名+日期时间+功能点
Tags的定义规则: 项目名+版本号
版本号定义为三段数字编号: xxx.xxx.xxx 第一个:革命性的产品升级版 第二个:新功能版 第三个:修正bug
打分支或标记
创建分支成功后,trunk主干中的文件将克隆一份到branches分支里
3.分支合并到主干
先在分支添加"分支文件.txt",且主干没有该文件,同时提交至SVN服务器
保证分支是最新的,在主干这边进行合并操作
合并成功后,分支的“分支文件.txt”就合并到了主干上。