SVN在IDEA的使用

3/27/2021 SvnIDEATool

摘要

TortoiseSVN:1.14.1
IntelliJ IDEA 2019.2.3

# 一:IDEA配置SVN

在idea的setting中,选择自己本地安装SVN的svn.exe文件的绝对路径 idea配置svn路径

# 二:IDEA拉取SVN项目

打开IDEA工具,选择Check out from Version Control,选择SubVersion

打开IDEA

新增svn仓库地址

新增svn地址

选择需要拉取的svn目录,点击CheckOut,再选择要存放在本地哪个目录下即可,之后全部选择默认即可。

checkout项目

checkout项目

最后结果打开的项目,相关svn的标志都已点亮,即已连接上SVN

拉取成功

# 三:SVN项目提交

当对项目文件进行修改后,需要提交工作内容时,

idea文件颜色说明

一定要切记,先更新(update),再提交(commit),防止有更新造成项目损失

点击提交按钮,会让我们选择提交哪些文件,注意填写提交信息,最后点击commit选择提交

格式化代码不要随便勾选,只格式化自己的代码就行,项目多人维护,一旦代码冲突,解决起来将会是一大片一大片的提交项目

对于新增的文件,如果没自动加到SVN提交队列中,需要手动选择add,选择需要add的文件,右键,选择SubVersion,选择Add to VCS,最后文件的颜色会从棕褐色变成绿色

add

# 四:Version Control

下面讲解Idea下的Version Control面板

# 4.1. 面板显示

如果没有看到Version Control面板,需要在Tool Window中展示出来

Version Control

# 4.2. Local Changes

可以查看修改的文件,以及不需要版本控制的文件

Unversioned Fileds

分列表存放

我们经常在工作时,往往在处理新任务时,有时候又得去另外的任务支援,或者临时修复其他bug等。这时候Local Changes就会异常的多,如下图,实际工作项目的Local Changes面板

实际工作项目

这时候可以按照自己想法分列表存放,以便把任务一个个分开,做完一个提交一个。而不是在提交的时候,再仔细找哪个和哪个是一个任务,然后再提交。

新增列表,如下示:

新增列表

填入一个易于理解(或任务)名字

新增列表

可以看到,如下图所示,新增了三个列表

新增列表

建好列表之后,可以选择对应的文件,右键选择移动到其他列表,也可以使用Alt + Shift + M快捷键直接到选择列表界面。(可以灵活使用ShiftCtrl选中多个,同时进行移动)

新增列表

移动列表

最后结果如下图所示:

列表最后结果

在提交的时候选择不同的列表即可

选择changeList

# 4.3. Repository

查看提交记录

提交记录

提交记录

# 4.4. Incoming

到目前为止,本地还没有更新别人提交的代码。

Imcoming

更新到指定版本的代码

选择Incoming面板,选择拉取代码,勾上Update/Switch to specific revision

Update/Switch to specific revision

revision后面为HEAD,默认为最新,更新全部,点击后面的文件夹图标,可以弹出查看Changes Browser窗口,选择reversion为33的版本,点击确定,

Changes Browser

33

最后可以看到reversion为33之前的所有版本都从svn远程仓库更新到本地了

更新本地仓库

上面配置测试完,记得把版本改回HEAD,或者把Update/Switch to specific revision前面的勾去掉,不然下次会以测试的配置为默认

# 4.5. Subversion Working Copies Information

SVN信息描述,具体可以看下图

svn信息描述

# 五:代码冲突

当点击更新项目功能(或使用快捷键Ctrl + T)时,从远程仓库获取最新代码,这时候如果有文件发生了代码冲突,如下图

冲突提示

一般遇到这种情况,基本使用Merge,得对比本地和远程的差别,点击Merge...可以看到,弹出一个对比窗口。

对比窗口

合并完代码后,点击apply,就算解决完冲突了

解决完冲突

# 六:Merge

主要两种情况,一种A分支合并到B分支;一种更新代码,代码冲突的时候。

其实不管哪种,重点要搞清楚from和to。

# 6.1. 准备动作

为了避免合并失败,报错。最好,先做一下准备动作。clean一下,refresh一下,然后再把这个to的目的地项目,也就是代码要合并的项目,svn更新一下。保证这个to项目是和svn版本库是一致的。

# 6.2. 配置分支

如果是首次合并分支,在合并之前,需要先配置分支信息,选择Configure Branches,新增分支路径

Configurer Branches

# 6.3. 合并操作

Merge From就是从哪里,合并代码到当前正在打开的这个项目来。trunk就是主干。这里选择merge到dev路径,可以看到扫描出此路径下的项目分支,选择一个分支项目,选择之前可以点击Refresh Branches重新刷新。

Merge From

【Merge All】全部合并:自动检测全部没有合并的版本

【Quick Manual Select】快速手动选择:展示分支所有提交的版本数据,包括已合并和未合并的。非常快【推荐】

【Select With Pre-Filter】按预设的选择:大致意思是 仅加载尚未合并的修订版本以供选择。很慢。

Select Merge Variant

选择Quick Manual Select,选择要合并的提交,在最前面打勾就好。选完之后,点击merge selected继续,

注意:每条记录前面的图标,带问号,表示没有合并过,合并过的,会变成有绿色加号的。

Merge From

合并成功后,提交理由自动写好,要是没问题,可以直接commit,要是不确定,可以先cancel,然后本地查看对比,再提交

Merge From

提交完成之后,可以在Local Changes这一栏看到多了一个Merge from xxxx分类,用完可以直接删掉。

删除

注意:这里別选错了,默认选择了Default Changelist

删除

最后可以在Repository查看最新的merge提交记录

查看提交记录

# 七:发布项目至SVN

如果项目在本地,之前并没有初始化为SVN,更没有提交过到SVN仓库,现在需要将这个项目作为一个svn新项目,来提交到SVN仓库应该如何做?

没发布过svn项目

# 7.1. 本地项目svn初始化

在菜单栏中找到VCS,选择Enable Version Control Integration...

初始化VCS

选择SubVersion

选择SubVersion

# 7.2. 提交项目到远程仓库

菜单栏找到VCS,选择Import into Version Control,最后选择Import Into Subversion

提交代码

选择需要提交的远程仓库位置

远程仓库位置

最后选择需要提交项目的本地位置,以及首次提交的提交信息

本地位置

信息

可以在TortoiseSVNRepository Browser验证是否提交成功

验证

# 八:其他小技巧

# 8.1. Annotate

选择一个文件,在左边行数右键,可以看到默认Annotate是没打勾的,如下图示:

没打勾的Annotate

将Annotate选中,打上勾,可以看到每一行代码最后的提交者和日期,当鼠标移动到某一行提交记录时,可以看到提交理由

相关信息

鼠标移动到某一行提交记录,鼠标左键单击一次,即可查看当时提交了哪些文件,也可以直接做对比,提交都做了哪些修改

相关信息

相关信息

# 8.2. 新增代码

在已经修改的地方可以看到一段绿色柱状条,鼠标左键单击,可以弹出相关菜单功能,如下图所示:

修改的部分

# 8.3. 常用配置

一些比较常用配置相关的内容

Version Control

当新增和删除,IDEA默认会提示,是否新增/删除在SVN库,这个提示可以设置默认,建议,还是选择提示,如下所示:

IDEA提示

定时自动检测,远程仓库是否有开发者新提交代码

定时检测

# 九:参考链接

最后更新: 9/24/2023, 9:53:43 PM