java学习day51(SVN)SVN

SVN 概述
1.SVN 介绍
SVN Subversion 的简称,是一个自由开源的版本控制系统。
Subversion 将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文
件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节
早期版本控制使用的是 CVS, 后来 SVN 替代了 CVS, 随着 android 兴起,出现 Git 版本控制工具,后续我们会学到。
1.1 SVN 基本概念
问题 : 怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?
复制 - 修改 - 合并方案 (Subversion 默认的模式 )
在这种模型里,每一个客户读取项目配置库建立一个私有工作副本 —— 版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
锁定 - 修改 - 解锁方案
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
1.2 SVN 架构
Subversion 支持 Linux Windows ,更多是安装在 Linux 下。
svn 服务器有 2 种运行方式:独立服务器和借助 apache 运行。两种方式各有利弊,用户可以自行选择。
svn 存储版本数据也有 2 种方式: BDB 一种事务安全型表类型和 FSFS 一种不需要数据库的存储系统。
因为 BDB 方式在服务器中断时,有可能锁住数据,所以还是 FSFS 方式更安全一点。

 2 SVN使用

本章节主要介绍常用的 svn 工具,如 window svn 服务器 VisualSVN ,客户端工具 TortoiseSVN 以及 idea svn 插件的使用SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql 的服务器用于保存和管理库文件(要保存的代码等文件)的服务端 ——VisualSVN Server 。还需要一个用户的操作端,用于提交更新检出代码,常用的有idea Svn 插件,以及 TortoiseSVN (小乌龟)。
SubVersion 官网: http://subversion.apache.org/
2.1 服务器端 VisualSVN 安装与配置
2.1.1 VisualSVN 下载

 配置与使用:VisualSVN安装配置与使用 - jack_Meng - 博客园

2.2 客户端 TortoiseSVN 安装与使用
TortoiseSVN 是一个基于 windows 系统的 svn 客户端图形化界面 .
2.2.1 Tortoise SVN 下载
2.3 IDEA SVN 配置与使用
2.3.1 IDEA svn 配置
前提是我们的电脑上已经安装了 TortoiseSVN.

这样安装就完成了

 

1.Update Project 更新项目
2.Commit changes 提交项目上所有变化文件
3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑
的文件没有修改,则是灰色不可点击。
4.Show history 显示当前文件的历史记录
5.Revert 还原当前被修改的文件到违背修改的版本状态下
1.Local Changes 本地修改过的文件都会出现在这里
2.Repository svn 仓库所有提交记录
3.Incoming 本地还没有更新的别人提交的代码
2.3.2 IDEA SVN 使用
2.3.2.1 share project

2.3.2.2 checkout

 

2.3.2.3 add commit update

 

2.3.2.4 ignor

 

 

2.3.2.5 解决冲突

 

 

3. SVN 规范
3.1 SVN 目录规范
visualSVN 中创建仓库时,可以选择 svn 目录结构
Trunk 主干目录,此目录下的文件为基准文件
Branches 用于开发的分支目录
Tags 用于发布的版本目录
假设有一个项目 OA, 我们完成了 1.0 版本,这时就可以打一个 tags
后续我们在 OA 项目上添加一个新的模块 ( 及时通讯 ), 我们就可以开一个分支 , 又有一个公司需要在我们 OA 基础上添加财务管理模块,我们又可以打一个分支。
我们后续针对 OA 1.0 版本在升级,我们不需要原来附加功能 , 就可以在原来的主干上继续开发,形成 OA2.0 版本,开发完成后就可以在打一个tags
3.2 分支与标记
3.2.1. 分支或标记规范
分支的定义规则 : Project name+ 日期时间 + 功能点 Tags 的定义规则 Project name+ 版本号 版本号定义为三段数字编号 xxx.xxx.xxx 第一个 : 革命性的产品升级版 第二个 : 新功能版 第三个 : 修正 bug
3.2.2. 打分支或标记

 

Tags 一般是只读,它代表的是发布的版本,所以我们不要进行改变。
3.3 主干与分支或标记的合并
3.3.1 主干合并到分支
首先保证主干是最新的 ( update) ,在分支这边进行操作

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy393939

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值