先来个介绍吧:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
SVN三大指令:checkout:连接到SVN服务器,更新服务器资源到本地。第一次连接使用.
update:更新服务器资源到本地
commit:提交本地资源到服务器
SVN一些图标含义
: 常规图标,当客户端文件和服务端文件同步,显示
冲突图标:当客户端文件和服务器端文件出现冲突时,显示
删除图标:当服务器端文件删除时,客户端文件显示
添加图标:当我们编写文件后,添加到提交队列显示,下次commit时,自动提交到服务器端
无版本图标:当我们编写好文件,没有添加到提交队列显示
只读图标:客户端文件以只读形式存在
锁定图标:当服务器端对该文件锁定,客户端该文件显示
忽略图标:当客户端标记时,不需要要上传到服务器端
修改图标:客户端文件修改,但并未提交时,显示
我们需安装客户端软件(小乌龟)与公司的SVN服务器打交道:
具体使用方法请参考以下两篇博客:
https://blog.csdn.net/maplejaw_/article/details/52874348(maplejaw的博客)
https://blog.csdn.net/finish_dream/article/details/51399238(forfd的博客)
我使用的是在eclipse集成svn插件来与svn服务器打交道:
安装svn插件:自行百度
一:将项目从svn检出
1.在Eclipse里打开SVN资源库窗口:点击菜单window-->show view-->other;然后再弹出窗口展开SVN节点,选择SVN资源库
2.在SVN资源库窗口(默认位置在Eclipse窗口下方)下使用右键菜单新建资源库位置,填写svn资源库的地址
3.打开资源库,选择需要的文件,右键checkout检出
4.Eclipse会自动加载到工作空间,接下来就可以修改和提交项目了
二:将新建的项目导入svn
1.项目右键,team,share project,next,next(next时,选择svn库,编写注释),最后finish。
2。team,commit,将项目提交到svn,便忘了编写注释
三:版本回退:有时,对当前的软件不满意,使用该功能回退到以前的版本
team -还原-可根据日志(你编写的注释)或者版本号进行回退
四:版本冲突:在实际开发中,如果两个人同时修改某个文件产生版本冲突问题
解决:合理分配,实在不小心产生冲突:
1.team-update,会出现四个文件:整合后的文件内容/xx.mine 我修改后的文件/xx.rx 起始的文件/xx.r.x 别人修改后的文件
删除后三个,修改整合后的那个,解决冲突,重新提交到svn服务器.
https://blog.csdn.net/nangongyanya/article/details/22054535(大神的专栏)
五:分支主干
https://www.cnblogs.com/sunrunzhi/p/6509448.html(少年的博客/有图片)
例如:出个新需求,搞个分支开发,主干接着往下开发,互不影响,需求搞完,分支合并到主干
1.创建分支:
项目右键,team,分支,填写分支url,,,,
2.切换到分支,开始工作
team,切换,填写分支url,不拉拉,,,
3.在分支开发太久,不晓得主干的变更,为了尽量减少冲突,我们需要将主干合并到分支
(合并其实就是将一个分支的内容覆盖到另一个分支上面)
team,合并,选第一个,from 分支url / to 主干url 注释 finish
(team/合并/会出现几个选项,每个选项的意思
1) 从主干合并到分支
2) 从分支合并到主干
3) 将主干上的修改合并到分支
4) 合并2个分支到主干
5) 从主干到分支,手工指定不需要合并的修改
6) 从主干到分支,手工指定要合并的修改
)
4.搞完,将分支合并到主干,
首先切换到主干,update
接着team/合并/将分支合并到主干/ from :主干url to:分支url 注释 finish