Svn版本控制工具
SVN是什么?
svn是Subversion的简称,是一个开源的代码版本控制系统,svn就是用于多人共同开发同一个项目,达到资源共用目的工具。
版本控制是什么?
版本控制(Revision control)是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。可记录每个版本的信息,方便问题追踪。同时版本控制还支持并行开发,可有效的提高开发效率。
为什么要使用SVN?
1、 项目备份方便,节省硬盘空间;
2、 记录每个版本,方便追溯历史纪录。
3、 多人协作开发,共享数据;
4、 细节化的权限控制,便于管理员掌控项目整体。
svn工作流程
svn架构
svn解决代码冲突
Svn从哪获取?
服务端:https://www.visualsvn.com/server/download/
客户端:https://tortoisesvn.net/downloads.html
i. 第一部分:操作svn服务器的2种方式
- command-line 命令行方式;
- GUI-client图形界面方式;
ii. 第二部分:svn服务连接方式: - internet网络连接:
a) apache服务器;
b) svn服务器; - local 本地连接:
iii. 第三部分:svn数据存储方式: - 文件方式:FSFS(推荐使用)
- 数据库方式:BerkeleyDB(伯克利DB)
2、 svn服务器、客户端的获取与安装:
a) 服务端:https://www.visualsvn.com/server/download/
b) 客户端:https://tortoisesvn.net/downloads.html
3、 svn服务器目录结构、用户和权限;
a) 目录结构:
i. Repositories 仓库:存放被svn管理的项目文件,可以存放源码,文档等;
ii. Users 用户:创建和编辑用户;
iii. Groups 权限组:创建和编辑用户组;
b) 创建仓库:
创建仓库:
1以文件的存储方式
2给仓库起名
3分配权限
01:所有人都没有权限
02:所有人都有读和写的权限
03:自定义
4创建带目录结构的名字为dev的文件夹
4:
标准文件夹结构:
- branches 分支:如果需要测试新技术,或者大范围修改,将主干代码拷贝到分支中进行,测试无误后可以合并到主干中;
- tags 发布:发布版本要放到tags中;
- trunk 主干:主要开发目录;
c) 创建用户:每个开发人员都需要拥有自己的svn账号;
d) 创建组:为每个部门配置不同的权限,便于管理;
e) 分配权限:在仓库或者目录中为用户/组分配权限;
4、 svn常用操作:
a) checkout 检出:初次下载 - 第一次连接svn服务器时候需要下载对应仓库的数据(如果仓库中有数据的话);
创建一个空文件夹。在空文件夹内右键,选择SVN检出。
b) add 新增:新增数据到svn服务器;
在trunk新增txt
提交到服务器
别的账号下载文件
c) update 更新:更新数据 - 检查svn服务器中的数据是否与本地的数据一致,如果不一致就下载改变/新增部分,同时不会删除本地数据;
别的账号修改文件后 更新同步
d) delete 删除:删除svn的数据(需要搭配commit命令);
e) revert 回滚:将指定版本的代码回滚到本地,如要提交到服务器需要搭配commit命令;
f) 代码冲突: 在多人同时开发一个类,提交的时候容易出现代码冲突,也可以理解为版本冲突;
g) 其他操作:
i. 下载指定版本号的文件;
ii. 代码对比工具;
iii. 账号保存与注销;
iv. 按照版本检出;
Part.2 在Eclipse中使用SVN
1、 在Eclipse中集成svn插件subclipse;
2、 subclipse github地址:https://github.com/subclipse/subclipse
3、 在线安装地址:https://dl.bintray.com/subclipse/releases/subclipse/latest/
4、 创建项目使用svn管理;
5、 使用svn插件进行常用操作;
6、 创建分支/标记;
7、 修改分支项目,并合并到主干上;
8、 使用svn管理Maven项目;
9、 忽略指定扩展名的文件;