目录
1. SVN介绍
1.1 主要内容
1.2 svn 简介
1.3 svn主要作⽤
1.4 基本概念
1.5 ⼯作流程
1.6. ⽣命周期
1.6.1. 创建版本库
1.6.2. 检出
1.6.3. 更新
1.6.4. 执⾏变更
1.6.5. 复查变化
1.6.6. 修复错误
1.6.7. 解决冲突
1.6.8. 提交更改
2. 安装配置
2.1. 下载
2.2. 安装
2.2.1. 安装 VisualSVN Server
2.2.2. 安装 TortoiseSVN
2.3. 配置
2.3.1. 设置IP和端⼝
2.3.2. 新建账号密码
2.3.3. 新建分组
3. SVN使⽤
3.1. 新建版本库
3.2. 签⼊项⽬到SVN(import)
3.3. 检索项⽬(check out)
3.4. 提交代码(commit)
3.5. 更新代码(update)
3.6. 版本冲突问题
3.6.1. 版本冲突原因
3.6.2. 版本冲突现象
3.6.3.版本冲突解决
3.6.3.1.场景
3.6.3.2.解决冲突的三种选择
3.6.3.3.解决冲突
3.6.3.4. 如何降低冲突解决的复杂度
4. Idea集成使⽤SVN
4.1. 配置SVN环境
4.2. 检索项⽬
4.3. 提交代码
4.4. 更新代码
4.5. 导⼊项⽬
4.6. 版本冲突问题
1. SVN介绍
1.1 主要内容
![](https://img-blog.csdnimg.cn/85923709fe9a4d93b1880b5bdfc8cb72.png)
1.2 svn 简介
SVN
全称
Subversion
,是⼀个开放源代码的版本控制系统,
Subversion
在
2000
年由
CollabNet Inc
开 发,现在发展成为 Apache
软件基⾦会的⼀个项⽬,同样是⼀个丰富的开发者和⽤户社区的⼀部分。
版本控制是什么?
版本控制(Revision control)是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。可记录每个版本的信息,方便问题追踪。同时版本控制还支持并行开发,可有效的提高开发效率。
SVN
是⼀个开放源代码的
版本控制系统
,管理着随时间改变的数据。这些数据放置在⼀个中央资料档 案库(repository)
中。 这个档案库很像⼀个普通的⽂件服务器
,
不过它会记住每⼀次⽂件的变动。 这样你 就可以把档案恢复到旧的版本,
或是浏览⽂件的变动历史。说得简单⼀点
SVN
就是
⽤于多个⼈共同开发同
⼀个项⽬,共⽤资源的⽬的
。
1.3 svn主要作⽤
1.
⽬录版本控制
如果想咨询更多优质java、Python、架构、大数据IT课程或资料请加微信:lezijie007
Subversion
实现了⼀个
"
虚拟
"
的版本控管⽂件系统
,
能够依时间跟踪整个⽬录的变动。 ⽬录和⽂件都能进⾏版本控制。
2.
真实的版本历史
Subversion
中,可以增加(
add
)、删除(
delete
)、复制(
copy
)和重命名(
rename
),⽆论是
⽂件还是⽬录。所有的新加的⽂件都从⼀个新的、⼲净的版本开始。
3.
⾃动提交
⼀个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发⼈员以逻辑区间建⽴
并提交变动,以防⽌当部分提交成功时出现的问题。
…
1.4 基本概念
* Repository( 源 代 码 库 ): 源 代 码 统 ⼀ 存 放 的 地 ⽅ Checkout
* (提取):当你⼿上没有源代码的时候,你需要从
repository checkout
⼀份
Commit
* (提交):当你已经修改了代码,你就需要
Commit
到
repository
* Update (
更新
)
:当你已经
Checkout
了⼀份源代码,
Update
后就可以和
Repository
上的源代码同步
1.5 ⼯作流程
开始新⼀天的⼯作
1
、从服务器下载项⽬组最新代码。(
Checkout
)
2
、如果已经
Checkout
并且有⼈已
Commit
了代码,你可以更新以获得最新代码。(
Update
)
3
、进⼊⾃⼰的分⽀,进⾏⼯作,每隔⼀个⼩时向服务器⾃⼰的分⽀提交⼀次代码(很多⼈都有这个习 惯。因为有时候⾃⼰对代码改来改去,最后⼜想还原到前⼀个⼩时的版本,或者看看前⼀个⼩时⾃⼰修 改了哪些代码,就需要这样做了)。(Commit
)
4
、下班时间快到了,把⾃⼰的分⽀合并到服务器主分⽀上,⼀天的⼯作完成,并反映给服务器。
(
Commit
)
注意:
如果两个程序员同时修改了同⼀个⽂件
,
SVN
可以合并这两个程序员的改动,实际上
SVN
管理 源代码是以⾏为单位的,就是说两个程序员只要不是修改了同⼀⾏程序,SVN
都会⾃动合并两种修改。 如果是同⼀⾏,SVN
会提示⽂件
Confict,
冲突,需要⼿动确认。
![](https://img-blog.csdnimg.cn/3c1c500c49804731aacf35bef77670e6.png)
1.6. ⽣命周期
1.6.1. 创建版本库
版本库相当于⼀个集中的空间,⽤于存放开发者所有的⼯作成果。版本库不仅能存放⽂件,还包括了 每次修改的历史,即每个⽂件的变动历史。
Create 操作是⽤来创建⼀个新的版本库。⼤多数情况下这个操作只会执⾏⼀次。当你创建⼀个新的版本库的时候,你的版本控制系统会让你提供⼀些信息来标识版本库,例如创建的位置和版本库的名字。
1.6.2. 检出
Checkout
操作是⽤来从版本库创建⼀个⼯作副本。⼯作副本是开发者私⼈的⼯作空间,可以进⾏内容 的修改,然后提交到版本库中。
1.6.3. 更新
顾名思义,
update 操作是⽤来更新版本库的。这个操作将⼯作副本与版本库进⾏同步。由于版本库是 由整个团队共⽤的,当其他⼈提交了他们的改动之后,你的⼯作副本就会过期。
让我们假设
Tom
和
Jerry
是⼀个项⽬的两个开发者。他们同时从版本库中检出了最新的版本并开始⼯ 作。此时,⼯作副本是与版本库完全同步的。然后,Jerry
很⾼效的完成了他的⼯作并提交了更改到版 本库中。
此时
Tom
的⼯作副本就过期了。更新操作将会从版本库中拉取
Jerry
的最新改动并将
Tom
的⼯作副本进⾏更新。
1.6.4. 执⾏变更
当检出之后,你就可以做很多操作来执⾏变更。编辑是最常⽤的操作。你可以编辑已存在的⽂件来, 例如进⾏⽂件的添加/
删除操作。
你可以添加⽂件
/
⽬录。但是这些添加的⽂件⽬录不会⽴刻成为版本库的⼀部分,⽽是被添加进待变更 列表中,直到执⾏了 commit
操作后才会成为版本库的⼀部分。
同样地你可以删除⽂件
/
⽬录。删除操作⽴刻将⽂件从⼯作副本中删除掉,但该⽂件的实际删除只是被 添加到了待变更列表中,直到执⾏了 commit
操作后才会真正删除。
Rename 操作可以更改⽂件/
⽬录的名字。
"
移动
"
操作⽤来将⽂件
/
⽬录从⼀处移动到版本库中的另⼀处。
1.6.5. 复查变化
当你检出⼯作副本或者更新⼯作副本后,你的⼯作副本就跟版本库完全同步了。但是当你对⼯作副本 进⾏⼀些修改之后,你的⼯作副本会⽐版本库要新。在 commit
操作之前复查下你的修改是⼀个很好的 习惯。
Status
操作列出了⼯作副本中所进⾏的变动。正如我们之前提到的,你对⼯作副本的任何改动都会成 为待变更列表的⼀部分。Status
操作就是⽤来查看这个待变更列表。
Status
操作只是提供了⼀个变动列表,但并不提供变动的详细信息。你可以⽤
diff
操作来查看这些变 动的详细信息。
1.6.6. 修复错误
我们来假设你对⼯作副本做了许多修改,但是现在你不想要这些修改了,这时候
revert
操作将会帮助你。
Revert 操作重置了对⼯作副本的修改。它可以重置⼀个或多个⽂件/
⽬录。当然它也可以重置整个⼯作 副本。在这种情况下,revert
操作将会销毁待变更列表并将⼯作副本恢复到原始状态。
1.6.7. 解决冲突
合并的时候可能会发⽣冲突。
Merge
操作会⾃动处理可以安全合并的东⻄。其它的会被当做冲突。例 如,"hello.c"
⽂件在⼀个分⽀上被修改,在另⼀个分⽀上被删除了。这种情况就需要⼈为处理。
Resolve 操作就是⽤来帮助⽤户找出冲突并告诉版本库如何处理这些冲突。
1.6.8. 提交更改
Commit 操作 是⽤来将更改从⼯作副本到版本库。这个操作会修改版本库的内容,其它开发者可以通过更新他们的⼯作副本来查看这些修改。
在提交之前,你必须将⽂件
/
⽬录添加到待变更列表中。列表中记录了将会被提交的改动。当提交的时候,我们通常会提供⼀个注释来说明为什么会进⾏这些改动。这个注释也会成为版本库历史记录的⼀部 分。Commit 是⼀个原⼦操作,也就是说要么完全提交成功,要么失败回滚。⽤户不会看到成功提交⼀半的情况。
2. 安装配置
2.1. 下载
https://www.visualsvn.com/downloads/
(服务器)
![](https://img-blog.csdnimg.cn/4f802f1b277b4607a65469a036806be1.png)
http://tortoisesvn.net/downloads.html (客户端)
![](https://img-blog.csdnimg.cn/2b75d289a864487d8f856730ce8d03fa.png)
最后下载完成的安装包
![](https://img-blog.csdnimg.cn/2f0b1f98ed9a47c8bd595a7bfef7103e.png)
2.2. 安装
2.2.1. 安装 VisualSVN Server
1. 双击安装程序 VisualSVN-Server-4.2.1-x64.msi
![](https://img-blog.csdnimg.cn/d4b4d7d10d4f43728ec75112f4637b39.png)
2.
勾选复选框选择同意,然后选择
Next
,选择
Upgrade
3.
选择默认配置,选择
Next
4. 设置服务器的安装路径、资源的存放⽬录及端⼝
![](https://img-blog.csdnimg.cn/3158d7dd1b4f402faca115c87539fe36.png)
5. 使⽤默认配置,选择Next
![](https://img-blog.csdnimg.cn/953c2b14e4e54309aa1a2140d50706c3.png)
6. 如果出现这个弹窗,选择 Ignore 忽略即可
![](https://img-blog.csdnimg.cn/919a345048f74a3ab426968c4a2ab86a.png)
7. 等待安装,安装完成后可勾选复选框,然后选择 Finish
![](https://img-blog.csdnimg.cn/f6e7f05c104340eb84c167090a5b742b.png)
8. 出现如下窗⼝,则表示安装成功
![](https://img-blog.csdnimg.cn/26ed724b6a9849d9b8d0ce0f3c568031.png)
2.2.2. 安装 TortoiseSVN
1.
双击安装程序
TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi
![](https://img-blog.csdnimg.cn/737e967033ae4172856a5c99641794e9.png)
2. 选择 Next,然后勾选 command line client tools,选择 Next
![](https://img-blog.csdnimg.cn/9523fdbd0e0a41049cd827a3c42c6f4a.png)
3. 设置TortoiseSVN的安装路径,勾选 command line client tools
![](https://img-blog.csdnimg.cn/c4d41746bd6247999539cb43f4917668.png)
4.进⼊到TortoiseSVN软件使⽤协议界⾯,直接选择Install进⾏安装
![](https://img-blog.csdnimg.cn/89785c3f8a27454b8c002664a35e117c.png)
5.安装完成之后,直接选择Finish即可
![](https://img-blog.csdnimg.cn/5549514d586a489295ae47a6211d7b24.png)
6.在任意空⽩地⽅,右键,出现如下内容,则表示安装成功
![](https://img-blog.csdnimg.cn/25086e41487b4f9d9786d5fa0cf9c809.png)
2.3. 配置
说明:服务器端需要提供
IP
、端⼝、帐号、密码供客户端使⽤。即有如下配置
2.3.1. 设置IP和端⼝
1. 打开服务器,点击 VisualSVN Server,选择 Configure authentication options...
2.
设置
Server name
,建议使⽤当前
IP
Server name 的 值 可 以 设 置 为 :
1.127.0.0.1 (只能本地⾃⼰访问)
2. 电脑⽤户名(只能本地⾃⼰访问)
3. 当前IP(能够拼通IP的⽤户均可访问)
Server Port使⽤默认值即可
查看当前IP:
打开dos窗⼝(Windows+R键),输⼊ipconfig,按回⻋
2.3.2. 新建账号密码
1.
右键左侧菜单
User
,选择
Create User
2.
设置⽤户的账户和密码
2.3.3. 新建分组
1.
选择
Group
右键,选择
Create Group...
![](https://img-blog.csdnimg.cn/f72f1ce74d4e45a1b4f0b0c0a63387a3.png)
2. 设置分组名称,及为分组添加⽤户
![](https://img-blog.csdnimg.cn/e7a437e013b8489694cb34eed51404f7.png)
3. SVN使⽤
3.1. 新建版本库
1.
选择
Repositories
右键,选择
Create New Repository...
2.
选择默认设置,选择下⼀步,设置仓库名称
3. 设置仓库⽬录 (选择任意⼀个选项都可)
![](https://img-blog.csdnimg.cn/a8f28af1d2064f0e9fa235e3282f31d3.png)
4. 设置仓库的访问权限(这⾥设置所有svn⽤户都有读/写权限)
![](https://img-blog.csdnimg.cn/86d2d460d21d4d2b9c0890cf0bd0dd7a.png)
5. 仓库创建完成
![](https://img-blog.csdnimg.cn/66010195f2ac4e3db64106360df878bd.png)
3.2. 签⼊项⽬到SVN(import)
1.
拷⻉远程仓库的地址
2.
选择任意项⽬,右键选择
TortoiseSVN
,选择
import
3. 将上⼀步拷⻉的仓库地址粘贴到地址栏
![](https://img-blog.csdnimg.cn/c3607695fbc44b279d3e748d51176bd9.png)
4.
选择永久接受
5. 输⼊⽤户账号和密码
![](https://img-blog.csdnimg.cn/d2a7edfa7907411fadbf6da62a3a205b.png)
6. 导⼊成功
![](https://img-blog.csdnimg.cn/f8b7ebb056924d41bda15efd54f95c06.png)
7. 仓库右键,选择刷新,在服务器中看到的效果
![](https://img-blog.csdnimg.cn/ea9522c48c144793a14d8528e25d4e47.png)
3.3. 检索项⽬(check out)
1.
复制要下载的项⽬的远程地址
2. 在需要检索项⽬的⽬录中,右键选择 SVN Checkout...
![](https://img-blog.csdnimg.cn/8b72e1df2e3d489ea6409002a4e6e745.png)
3. 输⼊远程地址,设置项⽬的存放位置
![](https://img-blog.csdnimg.cn/1b470f05aa5b470098e9f053beb2f44f.png)
4. 检索完成
![](https://img-blog.csdnimg.cn/ccd8b3c9ba7c40549c7a2edf43f64ff9.png)
3.4. 提交代码(commit)
1.
新建⽂件,右键选择
TortoiseSVN
,选择
Add
,将⽂件添加到版本库列表
![](https://img-blog.csdnimg.cn/9659b3bcc2b6468bae00a25a1f5d0e80.png)
2.
再次点击⽂件,右键,会出现
SVN Commit...
3. 提交成功
![](https://img-blog.csdnimg.cn/ee8e9e1971dd47be8ea958222f578ade.png)
3.5. 更新代码(update)
1.
如果当前资源不是最新版本,则可在项⽬中空⽩地⽅右键,选择
SVN Update
![](https://img-blog.csdnimg.cn/bf3b02d091f74b34a2141a6f8113c083.png)
2. 更新成功
![](https://img-blog.csdnimg.cn/68904ad47fc345ed970b8a5d0cf62c7e.png)
3.6. 版本冲突问题
3.6.1. 版本冲突原因
假设
A
、
B
两个⽤户都在版本号为
100
的时候,更新了
kingtuns.txt
这个⽂件,
A
⽤户在修改完成之后提交 kingtuns.txt到服务器,这个时候提交成功,这个时候
kingtuns.txt
⽂件的版本号已经变成
101
了。同时
B
⽤ 户在版本号为100
的
kingtuns.txt
⽂件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的 101版本上作的修改,所以导致提交失败。此时⽤户
B
去更新⽂件,如果
B
⽤户和
A
⽤户修改了⽂件的同⼀ ⾏代码,就会出现冲突。
3.6.2. 版本冲突现象
冲突发⽣时,
subversion
会在当前⼯作⽬录中保存所有的⽬标⽂件版本
[
上次更新版本、当前获取的版 本(
即别⼈提交的版本
)
、⾃⼰更新的版本、⽬标⽂件
]
。
假设⽂件名是
kingtuns.txt
对应的⽂件名分别是:
kingtuns.txt.r101
kingtuns.txt.r102
kingtuns.txt.mine
kingtuns.txt
同时在⽬标⽂件中标记来⾃不同⽤户的更改。
3.6.3.版本冲突解决
3.6.3.1.场景
1.
现在
A
、
B
两个⽤户都更新项⽬⽂件到本地。
⽤户
A
⽤户B
![](https://img-blog.csdnimg.cn/eca0047cb2dc40b29bd3eaea9ebcdb4f.png)
2.项⽬中的hello.txt⽂件原始内容为:
![](https://img-blog.csdnimg.cn/13b402cb2a034b99b2214ecdd5b8437b.png)
3.A⽤户修改⽂件,添加内容"A⽤户修改内容",完成后提交到服务器
![](https://img-blog.csdnimg.cn/5db033ceec7b4947acdaa42edd953f43.png)
![](https://img-blog.csdnimg.cn/dd43d12d123c4356a758cd9980dc29a4.png)
4.B⽤户修改⽂件,添加内容"B⽤户修改内容",完成后提交到服务器
![](https://img-blog.csdnimg.cn/e772e24be1624c5bbdf41bd848031544.png)
5.B⽤户提交更新⾄服务器时提示如下
![](https://img-blog.csdnimg.cn/51cbf79d31fc43f3a1f3ada1201c8d29.png)
6.B⽤户将⽂件提交⾄服务器时,提示版本过期:⾸先应该从版本库更新版本,然后去解决冲突,
冲突解决后要执⾏
svnresolved
(解决),然后在签⼊到版本库。在冲突解决之后,需要使⽤
svn
resolved
(解决)来告诉
subversion
冲突解决,这样才能提交更新。
3.6.3.2.解决冲突的三种选择
1.
放弃⾃⼰的更新,使⽤
svnrevert
(回滚),然后提交。在这种⽅式下不需要使⽤
svnresolved(解决)
2.
放弃⾃⼰的更新,使⽤别⼈的更新。使⽤最新获取的版本覆盖⽬标⽂件,执⾏
resolvedfilename并提交
(
选择⽂件
—
右键
—
解决
)
。
3.
⼿动解决:冲突发⽣时,通过和其他⽤户沟通之后,⼿动更新⽬标⽂件。然后执⾏resolvedfilename
来解除冲突,最后提交。
3.6.3.3.解决冲突
1.
在
B
⽤户当前⽬录下,右键选择
"SVNUpdate"
,执⾏
“update”
(更新)操作
2.B⽤户中的Hello.txt⽂件出现冲突
![](https://img-blog.csdnimg.cn/bf3703ca2e044650a939524d3123d058.png)
3.在冲突的⽂件上(选中⽂件--右键菜单—TortoiseSVN—Editconflicts(解决冲突))
![](https://img-blog.csdnimg.cn/ad0d7d5e723543c0b45f604f025f2c4e.png)
4.打开编辑冲突的窗⼝
![](https://img-blog.csdnimg.cn/df86fee48991494d984996dfae2b17e4.png)
Theirs
窗⼝为服务器上当前最新版本
Mine
窗⼝为本地修改后的版本
Merged
窗⼝为合并后的⽂件内容显示
5.
如果要使⽤服务器版本,在
Theirs
窗⼝选中差异内容,右键,选择
Use this text block
(使⽤这段⽂ 本块)。
同理如果要使⽤本地版本,在协商后,在Mine
窗⼝右键,选择
Use this text block
(使⽤这段⽂本块)。
![](https://img-blog.csdnimg.cn/b4c78efa52d84a7aa378360f5a094b01.png)
6.
修改完成后,选择
"Mark as resolved"
(标记为解决),然后选择
"Save"
(保存⽂件),关闭窗⼝即可。
7. 此时,当前冲突已解决,可再次选择 "SVN Commit"提交⽂件
![](https://img-blog.csdnimg.cn/6ed0a4628709416c9adb933cb8570305.png)
注:也可先不标记为解决,直接保存⽂件后,在
B
⽤户的冲突⽬录下,选中⽂件
—
右键菜单
—
TortoiseSVN—Resolved
(解决)。然后再提交⽂件。
3.6.3.4. 如何降低冲突解决的复杂度
1.
当⽂档编辑完成后,尽快提交,频繁的提交
/
更新可以降低在冲突发⽣的概率,以及发⽣时解决冲突的复杂度。
2.
在提交时,写上明确的
message
,⽅便以后查找⽤户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
3.
养成良好的使⽤习惯,使⽤
SVN
时每次都是先提交,后更新。每天早上打开后,⾸先要从版本库 获取最新版本。每天下班前必须将已经编辑过的⽂档都提交到版本库。
4. Idea集成使⽤SVN
4.1. 配置SVN环境
1.
File —> Other Settings
(全局配置;
Settings
是局部配置)
—> Version Control —> Subversion
![](https://img-blog.csdnimg.cn/8a9d6bfd0d774e348aef634b7610dc89.png)
2. 配置svn
![](https://img-blog.csdnimg.cn/02a811eaad0d4a89aa486a56ae0285c4.png)
找不到
svn.exe
⽂件,
TortoiseSVN
的
bin
⽬录下⾯没有
svn.exe
之所以没有是因为安装
TortoiseSVN
的时候没有勾选指定安装项,添加
command line client tools
3.
重启
Idea
4.2. 检索项⽬
1.
选择
VCS —> Checkout from Version Control —> Subversion
![](https://img-blog.csdnimg.cn/5b6eb0a4252b4fb48a91b17b5e2ae196.png)
2. 添加远程仓库中项⽬的URL
![](https://img-blog.csdnimg.cn/f13a897c39f641bca33db3f8cf17ef2d.png)
3. 点击添加的URL,选择 Checkout
![](https://img-blog.csdnimg.cn/1aa7e81993cb450987b15138e85a2cc5.png)
4. 选择检索的项⽬的存放位置
![](https://img-blog.csdnimg.cn/6d3f8e3d40fd4502b4154277e7d01515.png)
5. 选择Destination,根据⾃⼰的偏好选择,其他配置默认,单击 OK
![](https://img-blog.csdnimg.cn/549e038736ce4a3b92e6c93b00ed5dd8.png)
6. 选择 1.8 Format,点击 OK
![](https://img-blog.csdnimg.cn/46361399da8342679f5eccc50972666a.png)
7. 已经check out⼀个项⽬,是否要打开,选择 Yes
![](https://img-blog.csdnimg.cn/94b0d12b6e1d4fab92e1760d88f32e89.png)
8. 选择 Add
![](https://img-blog.csdnimg.cn/0ed0c63dcc0346b092a3012657574b1d.png)
9. 此时,项⽬就可以与远程仓库关联
![](https://img-blog.csdnimg.cn/8af1bdb5aa164a84b5e3a556bb793308.png)
4.3. 提交代码
1.
选择
VCS —> Commit...
2. 选择需要提交的⽂件,填写提交信息,选择 Commit
![](https://img-blog.csdnimg.cn/3d0839dd223f4cdf97e3dd43a7d823f5.png)
3. 提交成功后,会在Idea最下⾯显示提交状态
![](https://img-blog.csdnimg.cn/82f465be5fcd4523bdf35fdeab0c579b.png)
注:项⽬提交前,最好先更新,然后再提交。
4.4. 更新代码
1.
选择
VCS —> Update Project...
![](https://img-blog.csdnimg.cn/d88bd88de13046139865196002833e11.png)
2. 默认即可,直接选择 OK
![](https://img-blog.csdnimg.cn/72483d89965348d5aff77c1f14ee3015.png)
3. 更新成功的提示信息
![](https://img-blog.csdnimg.cn/07466ffc63934fc3a527b3b5deb8e8bf.png)
4.5. 导⼊项⽬
1.
选择
VCS —> Import into Version Control —> Import into Subversion
![](https://img-blog.csdnimg.cn/7237ee792b1b43db8553b56f02eab77a.png)
2.
选择
"+"
添加项⽬导⼊的地址(可⼿动添加⼀个⽂件夹,项⽬中的⽂件会放置在该⽂件夹中,⽂
件名⾃定义)
3.
选择要导⼊的路径,选择
Import
4.
选择要导⼊的项⽬,点击
OK
5. 检查导⼊的路径,填写导⼊信息,选择 OK
![](https://img-blog.csdnimg.cn/c2eda580b0a94930894ea25342c06814.png)
6. 在远程仓库中检查是否导⼊成功即可。
4.6. 版本冲突问题
1.
如果未更新,就提交资源(有其他⽤户也提交过资源),则提交失败
![](https://img-blog.csdnimg.cn/40639ea6fd494fad97d50a39f8d7cf83.png)
2. 此时,执⾏更新操作,将其他⼈提交过的资源更新到本地,会提示冲突
![](https://img-blog.csdnimg.cn/db41f58d1254446d928879cebc6fdccd.png)
3. 通常选择合并,再选择需要保留的代码,选择好之后选择 Apply
![](https://img-blog.csdnimg.cn/62ed3d2f761f4ca1b364eaa9e7743e1e.png)
4.
提示更新成功
5. 再次选择提交,成功解决冲突
![](https://img-blog.csdnimg.cn/6add78471ef64a55a43edaf0aa289f8b.png)
---------------------------------------------------------------------- 我是低调的分隔线 --------------------------------------------------------------------------
![](https://img-blog.csdnimg.cn/7bf0ab6e05704d37b211df908c98334f.jpeg)
吾欲之南海,一瓶一钵足矣...