一、SVN基本概念
-
SVN是Subversion的简称,是一个自由开源的版本控制系统。
-
checkout: 把整个项目源码下载到本地
-
update: 从服务器上更新代码,使本地达到最新版本
-
commit: 将本地源码提交到服务器
-
两种存储方式:BDB、FSFS,一般用后者更安全
二、SVN常用操作
-
浏览仓库:文件夹内右键-->TortoiseSVN-->Repo-brower
-
下载全部文件: 文件夹右键-->TortoiseSVN-->checkout-->文件夹出现绿色对勾-->文件夹内出现.svn隐藏文件
-
添加文件到本地仓库: 在文件夹内添加一个文件-->TortoiseSVN-->add
-
提交文件到服务器:选中文件夹内文件-->TortoiseSVN-->commit-->成功又变成绿色对勾
-
更新到某个版本:选中文件夹内文件-->TortoiseSVN-->show log-->选择版本-->右键-->update item to revision
或者 选中文件夹内文件-->TortoiseSVN-->填入版本号
-
删除文件:选中文件夹内文件-->TortoiseSVN-->Delet-->此时删除的是本地仓库的文件-->再次commit,才能删除服务器文件
-
Export导出文件:右键-->TortoiseSVN-->Export-->导出的文件时没有隐藏文件.svn的,也就是说它不受版本控制
-
产生冲突和解决:当多个用户同事提交到服务器时,导致你与服务器版本不同步,当你在提交时就会产生冲突
选中冲突的合并文件-->Edit conflicts-->右键选择使用使用那个文件和文件内容的顺序-->Mark as resolved -->commit-->冲突解决
三、IDEA下SVN配置与使用
- 配置svn: File-->Settings-->version control-->Subversion-->选择svn安装路径bin下的svn.exe-->Apply
- 将工程提交到SVN服务器:VCS-->import into Version Control-->Share Project(Subversion)-->添加连接-->选择版本-->进行提交
- 从SVN下载项目:VCS-->Checkout from Version Control-->Subversion-->添加链接
- 这五个图标依次意思如下:
- Update Project 更新项目
- Commit changes 提交项目上所有变化文件
- Compare with the Same Repository Version 当前文件与服务器文件进行对比,如果当前没有改动,则不可点击。
- Show history 显示当前文件的历史记录
- Revert 还原当前被修改的文件到违背修改的版本状态下
四、SVN目录规范
在创建仓库的时候,选择svn目录结构-->Single-project repository(with the top-level'trunk','branches' and 'tags' folders)
Trunk主干目录,此目录下的文件为基准文件
Branches用于开发的分支目录
Tags 用于发布的版本目录
System.out.println(list.stream( www.jubooyule.com ).min((www.baihua178.cn b) -> a-b).get()); // 1
System.out.println(www.jucaiyle.cn list.stream(www.tengyueylzc.cn).count(www.baihuayllpt.cn));//
String str =www.qitianylezc.cn"11,22,33,44,55";
System.out.println(Stream.of(str.split(www.longtenghai2.com",")).mapToInt(www.wujiu5zhuce.cn-> Integer.valueOf(x)).sum());
System.out.println(Stream.of(str.split("www.lanboylgw.com,")).mapToInt(Integer::valueOf).sum());
System.out.println(Stream.of(str.split(www.shentuylzc.cn",")).map(x -> Integer.valueOf(x)).mapToInt(x -> x).sum());
System.out.println(Stream.of(str.split(www.xingyunylpt.com",")).map(Integer::valueOf).mapToInt(x -> x).su
打分支/标记:在主干的目录里-->TortoiseSVN-->Branch/tag-->在选对应的类型+命名规范
- 分支定义规则:Project name+日期时间+功能点
- Tags定义规则:Project name+版本号 版本号定义为三段数字编号 xxx.xxx.xxx 第一:革命性的产品升级版 第二个:新功能版 第三个:修正bug
主干合并到分支,首先保证主干是最新的(update),然后在分支这边进行操作。分支合并到主干,相反。
常用的一般操作,大家可以了解一下,这也是进入企业一定会接触的,还有一个分布式的管理工具就是Git,咱们下其再说。