注意:这里使用的IDEA版本是2019.3,使用不同的版本关联Tortoise后功能可能会有所变换。

IDEA配置SVN

使用前提

要在IDEA中使用【TortoiseSVN】,在安装【TortoiseSVN】时,需要注意的是选择下列选项。

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker

【IDEA】关联使用【Tortoise】

idea社区版支持docker idea社区版支持svn吗_解决冲突_02

IDEA使用SVN

1.Update Project 更新项目
2.Commit changes 提交项目上所有变化文件
3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。
4.Show history 显示当前文件的历史记录
5.Revert 还原当前被修改的文件到违背修改的版本状态下

idea社区版支持docker idea社区版支持svn吗_解决冲突_03

文件夹右键部分功能介绍

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker_04

Share Project

作用:将当前工程共享到到仓库

如果没有【Share Project】选项,参考解决:

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker_05

checkout

作用:将仓库内容下载到本地。

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker_06

add、commit、delete、update

IDEA会自动检测是否有新增的文件,所以一般不需要我们手动去执行【add】。

commit、delete、update等等操作这里不过多赘述。

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker_07

设置ignore

打开IDEA的设置,找到下面位置,然后添加以下内容:

*.settings;*.sh;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;target;vssver.scc;vssver2.scc;

idea社区版支持docker idea社区版支持svn吗_解决冲突_08


据说changelist和设置ignore有类似的功能,都可以忽略文件或者文件夹不提交到仓库,这里没有进一步了解,后面如果有时间回来补充。

idea社区版支持docker idea社区版支持svn吗_java_09

解决冲突

将仓库【ccc】checkout到本地一个文件夹【temp】,保持IDEA中的【ccc】项目和【temp】文件夹都为最新版本,此时cat.java的内容都为

public class Cat {
}

修改【temp】中cat.java,然后执行【SVN commit】

public class Cat {
	int a=10;
}

回到IDEA,此时不执行【update】,直接修改cat.java

public class Cat {
    int b=10;
}

修改完后,执行【commit】,提示错误。

Commit failed with error
0 files committed, 1 file failed to commit: int b=10
svn: E155011: Commit failed (details follow):
svn: E155011: File ‘F:\learn_prj\svn_learn\ccc\src\main\java\Cat.java’ is out of date
svn: E170004: File ‘/src/main/java/Cat.java’ is out of date

解决方法

点击【update】,弹出解决冲突的方式。

idea社区版支持docker idea社区版支持svn吗_idea社区版支持docker_10

根据需要选择,这里选择【Merge】,合并,之后弹出下面窗口。

idea社区版支持docker idea社区版支持svn吗_解决冲突_11

修改后,就解决了冲突。

idea社区版支持docker idea社区版支持svn吗_解决冲突_12

之后再执行【commit】。