一、SVN的概述

svn是Subversion的简称,它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。

二、SVN客户端的下载与安装

  在此安装我就不做详细介绍,svn安装之后桌面空白处右击鼠标会有对应的SVN Checkout和TortoiseSVN,这个说明你已经安装成功。安装成功后重新启动电脑(不重启,可能会导致相关的图标不显示,如果重启还是没有,请做修改对应的注册表

三、SVN的体系结构

svn ios 客户端 svn客户端怎么打开_svn ios 客户端

如图所示,通过svn客户端访问svn服务可以从svn仓库中检出/更新代码到本地,也可以将本地代码提交到svn仓库。

四、SVN使用

1.svn的拉取项目

首先需要准备一个空白文件夹,右击文件夹选择SVN Checkout

 

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_02

 

 输入仓库地址(地址向你的项目经理要),更换路径,选择head revision 最新版本,点击OK,第一次拉取需要登录

 

     

svn ios 客户端 svn客户端怎么打开_上传_03

输入用户名和密码(改用户名和密码),点击ok,拉取过程有点慢,静静等待...

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_04

 

这里拉去的是五个项目,第一次拉取,全是对钩,表示已经与svn服务器爆出同步,这里出现!是因为我修改了项目的文件,与服务器不同。点进入一个项目,在项目的第一个文件.svn文件这里我们不要点击它,不能进行任何修改,我们就当忽略它。其他的目录即时我们要的项目,在公司里,每天早上第一件事,就是需要拉取一下最新的代码,但这里我们就不用在此checkout,而是选择SVN update,更新一下就OK了。

2.将本地新建文件添加到svn服务器上

首先我们在该管理文件下,新建一个文本,我们首先右击该文本选择TortoiseSVN,选择add,该文本会出现一个蓝色的加号标志,这个时候我们右击该文件选择SVN commit

svn ios 客户端 svn客户端怎么打开_上传_05

 我们每一次提交,都需要写提交的说明信息,注意是每一次提交,点击ok即提交到svn服务器上。这时候查看自己提交的文件这时候蓝色的加号会变成绿色的对钩,这时候就已经成功了。

3.查看日志

日志,大家也是知道的,日志的存在我们能够看到svn的每一次提交版本,意思就是我们能够看到你提交操作。如何查看日志了,选择你要查看日志的项目,右击选择TortoiseSVN,选择show log,就能看到该项目的版本,操作的人信息等。

4.SVN回退

 若是不小心修改的,却不知道在哪里修改,我们可以右击你修改的文件选择TortoiseSVN,选择Revert,这里就是回退到服务器当前最新版本。

  5.解决代码冲突

代码冲突,这肯定是无法避免的,这里也是在合并代码这块很重要

  代码冲突问题的 产生:

      多个用户在操作同一个文件时,修改或新增了不同的内容,在第一个用户提交后,第二个用户提交时就会发生冲突,(提交的版本和别人提交的版本内容冲突)

  举例:  

 jack修改了user.java

  

svn ios 客户端 svn客户端怎么打开_上传_06

   Rose修改了user.java

  

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_07

  Jack在提交操作时不会产生冲突而rose尝试提交时:

 

svn ios 客户端 svn客户端怎么打开_本地代码_08

提示文件过时,update:

   

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_09

打开文件后解决冲突:

 

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_10

修改内容为:

     

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_11

再次提交,就不会出现问题了。

,应该第一时间在工作的群中发布消息让团队相关人员知晓.

    如何避免冲突:

,上班后第一个动作应该是先update代码,保证本地代码和svn同步,在提交代码,如果工作中需要修改别人的代码,应该与负责该代码的人员商讨,而不是直接提交。

 

五、通过IDEA工具使用SVN

1.上传项目到SVN

创建了一个java项目,同步到svn服务器,rose从服务器中获取项目:

创建项目:svndemo

 

svn ios 客户端 svn客户端怎么打开_上传_12

点击菜单VCS-->Enable Version Control Integration…

 

 

svn ios 客户端 svn客户端怎么打开_上传_13

 

选择Subversion

 

svn ios 客户端 svn客户端怎么打开_svn_14

 

被纳入svn版本控制后当前项目会变成红色:

svn ios 客户端 svn客户端怎么打开_svn_15

 

项目为红色时表示本地版本信息和远程仓库版本信息不一致.

通过IDEA工具查看svn仓库信息:

svn ios 客户端 svn客户端怎么打开_svn_16

 

第一次操作时需添加仓库信息:

svn ios 客户端 svn客户端怎么打开_上传_17

 

效果如下:

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_18

 

开始上传本地代码前需要忽略掉一些不必上传的目录和文件:

 

svn ios 客户端 svn客户端怎么打开_svn_19

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_20

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_21

 

本地项目中的target目录 .idea文件 .iml文件都是和代码无关的,所以全部都忽略掉

最终效果:

svn ios 客户端 svn客户端怎么打开_本地代码_22

 

将本地代码提交到远程仓库: 右击项目 ->Subversion -> Share Directory…

 

svn ios 客户端 svn客户端怎么打开_上传_23

 

选择上传文件夹:

 

svn ios 客户端 svn客户端怎么打开_本地代码_24

svn ios 客户端 svn客户端怎么打开_svn_25

 

被纳入svn版本控制的项目效果:

svn ios 客户端 svn客户端怎么打开_上传_26

 

 注意: 纳入版本控制只是单纯的在svn远程仓库中创建了一个用以上传项目的目录,该操作并不直接将项目上传

提交本地代码:

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_27

 

选择需要提交的内容提交:

 

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_28

 

提交后项目效果:

 

svn ios 客户端 svn客户端怎么打开_上传_29

 

在svn仓库视图中也能看到提交后的项目:

svn ios 客户端 svn客户端怎么打开_svn ios 客户端_30

 

当修改本地代码后:对应的文件会变成蓝色:

svn ios 客户端 svn客户端怎么打开_本地代码_31

 

再次提交后变为黑色

2.从SVN中检出项目

打开IDEA在开始窗口选择: Check out from Version Control ->Subversion

svn ios 客户端 svn客户端怎么打开_上传_32

 

选择要检出的项目:

svn ios 客户端 svn客户端怎么打开_上传_33

 

选择本地放置项目的文件夹

svn ios 客户端 svn客户端怎么打开_本地代码_34

 

点击ok

 

svn ios 客户端 svn客户端怎么打开_上传_35

 

Ok

svn ios 客户端 svn客户端怎么打开_svn_36

 

yes

svn ios 客户端 svn客户端怎么打开_本地代码_37

 

一直next

svn ios 客户端 svn客户端怎么打开_上传_38

 

最终效果:

svn ios 客户端 svn客户端怎么打开_上传_39

 

 第一次写博客,也不知道写的咋样,不过也花费了很长时间,总想写的完美点,但感觉写的不是太好,虽然我知道网上有很多人写了svn相关文章,但我写了一篇自己见解。