先来个介绍吧:

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