工作中SVN的使用
一、svn是什么?
-
集中式版本控制(Centralized VCS)。
-
所有历史版本集中存放在一台服务器,本地只保留当前工作副本。
-
核心概念:
中央仓库:SVN 采用客户端-服务器模式。所有文件的历史版本都集中存储在一个中央服务器上。工作副本:开发者从中央服务器“检出”一份文件到自己的本地电脑,这份本地的文件就是工作副本。版本记录:SVN 会记录每一次文件提交,包括:谁、在什么时候、修改了哪些内容、以及为什么修改。每个版本都有一个唯一的版本号。提交与更新:提交:当你修改完本地代码后,通过“提交”操作将变更同步到中央服务器,从而创建一个新的版本。更新:通过“更新”操作,将本地工作副本与中央服务器的最新版本同步,获取其他同事的修改。
二、有了git,为啥还需要svn?
- 历史原因:大量现存的老项目跑在 SVN 上,迁移成本和风险高。
- 场景需求:对于需要严格目录级权限控制和频繁处理大型二进制文件(如游戏美术资源)的团队,SVN 的方案可能更简单、更稳定。
- 团队习惯:对于非技术背景成员较多或团队习惯已定的情况,SVN 的统一、简单的工作流更容易管理和维护。
结论就是:工具没有绝对的好坏,只有是否适合当前的团队和项目。 Git 在绝大多数软件开发场景下是更优的选择,但 SVN 在它的特定领域内,依然是一个可靠、甚至是更合适的选择。
三、svn的安装
svn是分为服务端和客户端的。对于我们使用者来说只用安装svn的客户端就行。就像git一样我们本地也是需要安装git的客户端,而服务端比如gitlab是不需要我们安装的。svn客户端的安装很简单,除了下图需要单独设置一下,其他的只要一直点击下一步即可!只有安装的时候选择下面这个 Command Line Client Tools 的时候,你的安装目录的bin目录下面才有svn.exe文件。这样,后续,在idea中集成svn的时候才可以选择它。

四、SVN的基本操作
1、检出操作
- 拿到仓库地址URL ,鼠标右击空白区域-点击SVN检出

- 在检出界面,填仓库地址URL ,默认检出地址,就是你点击的空白区域所在目录

- 认证界面,填写用户名/密码

-
出现如下界面,便是检出成功

检出成功
2、提交文件
新增文件需要add之后,才能commit到远程仓库,或者在commit的时候选择未add的文件进行提交,修改的文件commit的时候默认是勾选的。当前目录空白区域鼠标右击,然后点击commit的时候,是commit当前目录下未commit的文件。如果点击某个文件右击的话,commit的就是当前文件。

出现如下界面,填写提交信息后点击Ok提交:

3、更新文件

更新 4、查看历史版本

通过查看历史版本,可以看到别人的提交记录,以及提交了什么文件。

点击之后出现如下历史提交记录界面

5、回滚
点击下面按钮,进入回滚界面

进入回退版本界面,点击Show log查看历史提交记录,查看要回退的版本号

填写要回退的版本的版本号进行回退

6、分支操作
正常情况需要进行分支操作的时候,我们需要建立如下三个目录:
| 目录名 | 用途 | 优点 |
|---|---|---|
| trunk | 主开发线,存放最新的稳定代码 | 便于集中开发、持续集成 |
| branches | 用于并行开发、功能分支、修复分支等 | 支持多人协作、功能隔离、风险控制 |
| tags | 用于标记发布版本(如 v1.0、v2.0),通常只读,不修改 | 便于版本回溯、发布管理、归档 |
6.1 新建分支
基于主干新建分支的时候,右击主干分支,按下图选择新建分支。

进入如下界面,填写对应信息,新建分支

需要注意的是,新建完分支之后,需要在update一下,本地对应目录才会有对应分支代码。
6.2 合并分支
将分支内容合并到主干(branch => trunk),按如下步骤进行合并:
- 右击主干目录,点击 Merge 进行合并

- 进入如下界面直接点击下一步即可

- 进入如下界面,填写对应合并信息后,点击Next

- 一般按照默认就好 先点击 Test merge ,进行合并测试,合并测试没问题,再点击 Merge 合并

需要注意的是,合并仅仅是合并到本地文件夹目录,所以合并完成后,记得要Commit提交到SVN。

6.3 切换分支
右击需要切换分支的工作目录,选择 Switch 进入切换分支模块

进入切换分支界面之后,选择要切换的分支,点击 OK

7、文件冲突
当你在合并代码或者更新代码的时候,就有可能会出现冲突,发生文件冲突的时候,会出现如下界面:

右击冲突文件,选择 Edit conflicts,编辑冲突文件

进入如下界面后,按照图示进行冲突处理:

冲突处理完成之后,点击 Save 保存

如果冲突处理完成,并且 点击的 Mark as resolved ,即标记为已解决,则之前文件前的冲突标识消失。

五、idea集成SVN的基本使用
1、idea集成svn
idea的settings里面找到Version Control里面的 Subversion下配置本地安装的svn路径

idea上方工具栏出现 SVN,则说明idea集成SVN成功!

2、提交、更新代码
点击下图对应按钮,即可提交代码、更新代码。

点击提交代码,会出现如下界面,选择要提交的文件以及填写提交信息,之后点击 Commit 提交代码。需要注意的是SVN是没有
本地仓库的概念的,提交就是直接提交到远程仓库,类似GIT的提交界面中的 Commit and Push !

idea右下角弹出如下界面就是提交成功!

点击更新代码会出现如下界面,直接点击 OK 便是更新当前分支代码。

3、查看历史版本
SVN查看历史版本需要选中你要查看的文件,如果是要查看当前工程的历史提交记录,则右击工程目录。如果没有,选中任何文件,则查看的默认是你当前编辑区域窗口打开的文件的历史记录。

点击 Show History之后便会出现如下历史记录界面。

4、回滚
回滚也是点击更新代码的按钮,然后,进入如下界面之后就不能直接点击 OK了,而是按照下图步骤进行操作:

5、分支操作
5.1 新建分支
SVN → Subversive → Branch or Tag 创建新的分支

点击新建分支,出现如下界面,可按图示进行分支创建

5.2 切换分支
如果上面我们没有勾选,切换分支,那么此时我们也可以通过如下操作来切换分支。同样,切换分支也是点击更新代码的按钮,然后,按照下图进行操作:

5.3 合并分支
按照下图操作,进入选择分支界面。下面的操作是将其他分支代码合并到当前分支。

进入选择分支界面,选择需要合并过来的分支。

点击 Merge All

点击 Continue merge 完成合并!

6、文件冲突
idea里面的冲突文件会爆红,如下图,右击冲突文件,按照下图点击 Resolve Text Conflict 解决冲突

出现如下界面,根据需要按照下图示进行对应操作

当选则手动合并的时候,会出现如下界面,可根据需求按照下图示做对应操作

处理冲突之后,文件变蓝色,成待commit文件

支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!














