版本控制
版本控制概述
新版本迭代旧版本。在开发过程中用于管理我们对文件,目录或工程的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
版本控制分类
本地版本控制–> 记录文件的每次更新,适合个人用
集中版本控制–> 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
分布式版本控制–> 所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的版本历史,可以离线在本地提交,只需在联网时Push到相应的服务器或其他用户那里,由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据
常见的版本控制工具
| SCM | CVS | VSS | ClearCase | SVN |
SVN 安装
第二项需要进行选择,否则svn中的bin目录下没有svn.exe,不能继承IDEA中
svn版本控制工具
svn 版本控制工具概述
SVN (SubVersion) 是代码版本管理软件,它有服务端与客户端的区分,获取方式如下:
服务器端软件 visualSVN :https://www.visualsvn.com/
客户端软件:Tortoisesvn:https://tortoisesvn.net/downloads.html
其中在Tortoisesvn 软件安装完毕后,一定要重启计算机,否则svn图标是无法显示的;
svn客户端使用
版本库浏览
(1) 对服务器上的文档可以直接在服务器上操作,在本地任意位置右击选择选择“TortoiseSVN”—> “版本库浏览器”。
(2) 在弹出的URL输入框中输入要访问的路径
(3) 在URL窗口点击确定,输入用户名和密码,显示此路径下的所有内容,可以对文件进行操作
-
svn检出(SVN Checkout)
一般当你第一次从SVN服务器上下载内容时需要这么操作,操作步骤如下:
新建一个目录,在目录里右键选中[SVN Checkout]
弹出如下界面,依次填写或核对信息,在Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本
-
svn提交(SVN Commit)
此操作一般是在对从SVN服务器上下载下来的文件,你修改之后想再次提交到SVN服务器(如果是新增的不能用这个操作,得使用“Add”);
操作方式是在修改文件上击右键,出现菜单,选择“SVN Commit…”;然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败
-
svn更新(SVN Update)
此操作一般是在SVN服务器上的文件有了更新变动之后,你想要获取最新的时候进行;只需选中要被更新的文件,右键选择“SVN Update”项即可;
若有文件出现亮红,说明来自版本库的内容与你本地修改的内容在合并时出现了冲突,解决方法见下节点
-
SVN软件工作流程:
- 职员:通过客户端SVN操作
- 项目经理:通过服务器端SVN操作
-
SVN使用详解
-
SVN三大指令
- 提交操作(Commit):
- 提交本地数据到服务器
- 更新操作(Update): 将修改后的代码提交至SVN服务器
- 提交操作(Commit):
-
-
SVN版本回退
- 什么是SVN版本回退
有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。
传统模式存储以前版本工程,及SVN软件的存储模以前版本工程,两种模式对比图:
- 版本回退的步骤
- 什么是SVN版本回退
-
SVN版本冲突
- 什么是版本冲突
在实际项目开发中,如果两个人同时修改某个文件就会产生版本冲突问题 - 模拟版本冲突
3. 解决方法- 合理分配项目开发时间
旺财 上午开发
小强 下午开发 - 合理分配项目开发模块
旺财 购物车模块
小强 文章模块 - 通过SVN解决版本冲突问题
当发生同时修改index.php发生版本冲突时,服务端显示内容:
index.php:整合后的index.php文件
index.php.mine :小强修改后的index.php 文件
index.php.r6 : 09:00 更新时的Index.php文件
index.php.r7 旺财修改后的index.php文件
操作步骤:- 删除除index.php以外的其他三个文件
- 修改整合index.php冲突文件
- 重新提交数据到svn服务器端,即可解决版本冲突问题
- 合理分配项目开发时间
- 什么是版本冲突
-
模拟真实的开发环境svn工作流程
SVN 图标
常见的SVN的图标有以下几种,如下图:
• 常规图标:表示自己电脑上的文件或者文件夹与SVN服务器上对应的文件一致,在自己电脑没有进行任何修改
• 修改图标:当你开始编辑一个文件,这个文件的状态就会变成修改状态
• 冲突图标:一般在同时编辑一个文件时容易出现这种冲突的现象
• 只读图标:设置只读属性后才会出现的标识,直到你获得文件锁才能取消只读
• 增加图标:文件或文件夹已经被计划加入到版本控制之下。通常是新建的文件或文件夹会有这个标识
• 忽略图标:客户端文件已忽略,不需要进行提交上传,那么将自动显示以上图标(有些文件不希望上传至svn服务器)
• 无版本控制图标:暂时还没有版本的控制,但没有被忽略
SVN eclipse操作
-
解锁目录
svn提交代码第一步是锁定开发者提交代码所在的dir(目录),这是一次代码提交阶段性的暂时性的锁,等提交操作完成了就会取消锁;这是为了保证在提交过程中不被更改;所以当我们由于强行中断进程而导致目录锁定时,eclipse报Attempted to lock an already-locked dir时,开发者只需要进行clean up 解锁上次的锁定即可;
SVN IDEA操作
-
配置SVN
Settings -》 Version Control -》 Subversion
如果找不到svn.exe,是因为在安装svn时第二个选项没有选择,请先卸载svn,再重新安装
SVN 卸载
控制面板—>卸载程序—>svn:右击卸载