一、SVN概述
SVN是Subversion的简称,是一个开源的版本控制系统。
Subversion将文件存放在中心版本库里,版本库像是一个普通的文件服务器。
版本库可以记录每一次文件和目录的修改情况,可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。

二、SVN的使用
1.下载软件
SubVersion:
https://sourceforge.net/projects/win32svn/

VisualSVN服务端:
https://www.visualsvn.com/downloads/



TortoiseSVN客户: https://tortoisesvn.net/downloads.zh.html
。下载TortoiseSVN客户端及其语言包


2.安装VisualSVN服务端

若安装出现2503,2502错误提示,是由于权限不足的原因,通过 :“ msiexec /package 安装包路径” 该方式安装。

初始界面

创建工程目录

创建用户

创建组,向组添加成员

分配权限,对成员或组分配相应权限


3.安装TortoiseSVN客户端及其语言包
TortoiseSVN安装后需要重启电脑,否则TortoiseSVN的相关图标可能会显示异常

语言包安装完毕后,右键菜单TortoiseSVN->Settings中选择安装的语言包


三、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,然后进行配置。

将一个项目工程添加到svn仓库

添加svn仓库地址,以及输入该仓库分配的有权限的账户登陆认证

选择该项目工程放在那个目录结构

项目工程添加svn后,就会出现一系列与svn操作相关的菜单。
常用操作菜单:
- Update Project :从svn服务器获取变化文件,更新项目
- Commit changes: 提交项目上所有变化文件到svn服务器
- Compare with the Same Repository Version :当前文件与服务器上该文件某版本的内容进行比较。
- Show history :显示当前文件的历史记录
- Revert :还原当前被修改的文件到未修改的版本状态下
- Local Changes: 本地修改过的文件都会出现在这里
- Repository svn:仓库所有提交记录
- Incoming :本地还没有更新的别人提交的代码

3.commit操作
提交项目上所有变化文件到svn服务器

4.Update Project操作
从svn服务器获取变化文件,更新项目


6.ignore操作
将文件/目录添加忽略标记,提交时自动忽略标记文件/目录

7.冲突与解决
Incoming :本地还没有更新的别人提交的代码

产生冲突,一般merge合并手动进行解决冲突


五、SVN规范
1.SVN目录规范
在visualSVN中创建仓库时,可以选择svn目录结构


Branches :用于开发的分支目录,在某个完成的项目上添加一个新模块,此时就可以开发一个分支,开发完成合并到主分支。
Trunk :主干目录,此目录下的文件为基准文件。
Tags :用于发布的版本目录,对某一阶段完成的项目打一个Tags。
2.分支与标记
- 分支的定义规则: 项目名+日期时间+功能点
- Tags的定义规则: 项目名+版本号
- 版本号定义为三段数字编号: xxx.xxx.xxx 第一个:革命性的产品升级版 第二个:新功能版 第三个:修正bug
打分支或标记


创建分支成功后,trunk主干中的文件将克隆一份到branches分支里

3.分支合并到主干
先在分支添加”分支文件.txt”,且主干没有该文件,同时提交至SVN服务器

保证分支是最新的,在主干这边进行合并操作



合并成功后,分支的“分支文件.txt”就合并到了主干上。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137108.html