SVN 简介
程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本
Subversion 是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion 允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion 可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作
类似 git,不过 Subversion 更加适用于传输管理大容量项目的场景。比如项目有很多游戏图片资源
安装
推荐下载 乌龟 svn 客户端

安装完成后,比如在我的项目在qiandaun1中,我右键就可以看到如下:

说明 svn 已经安装成功了
checkout
新建或者进入目录下,右键 --> Svn Checkout

其中 URL 我可以在 SVN 服务器获取到,这一步的目的主要是为了绑定本地和 SVN 服务器的目录,然后就会变成下面这样

.svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个 .svn 隐藏目录和里面的文件,否则将会导致你本地的工作拷贝(静态视图)被破坏,无法再进行操作
在你开始编辑一个文件之后,状态就变成了已修改,而图标重载已变成了红色感叹号。通过这种方式,你可以很容易地看出那些文件从你上次更新工作复本被修改过,且需要提交
如果在提交的过程中出现了冲突,图标就会变成了黄色感叹号
基础操作
1,增加 Add
在 test 项目文件下,新建一个b.txt文件,提交到版本库的方法如下2种:
-
先提到变更列表中,再 commit 到配置库中,选择新增文件,右键 SVN 菜单执行"Add"操作提交到"变更列表中",然后右键 SVN 菜单执行 SVN Commit 提交到版本库中。
-
不提交到变更列表中,而是直接commit配置库中,选择该文件,右键svn菜单执行"SVN Commit"操作。
2,删除 Delete
如果被删除的文件还未入版本库,则可以直接使用操作系统的删除操作删除该文件
如果被删除的文件已入版本库,则需要选择被删除文件,右键 svn 菜单执行 delete 操作,然后选择被删除文件的父目录,右键 svn 菜单执行"SVN Commit"
使用操作系统的删除操作删除该文件,然后选择被删除文件的父目录,右键 svn 菜单执行"SVN Commit",在变更列表中选择被删除的文件。如下图:

3,改名 Rename
修改文件名,选中需要重命名的文件或文件夹,然后右键"TortoiseSVNàRename",在弹出的对话框中输入新名称,点击"ok"按钮,并将修改文件名后的文件或文件夹通过 "SVN Commit"提交到 SVN 服务器上。
4,还原 SVN Revert
右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择"Update to reversion..." 然后会弹出一个窗口,如下:

比如说我们要回退到第10个版本只需要在 Revision 中填写相应的版本号,然后点击 ok 即可
5,检查更新 Check for modifications
此功能可以显示你所做的修改有哪些还没有提交的,此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或者目录,删除文件或者目录,移动文件或者目录等,如果你点击了检查版本库,那你还可以看到版本库里的改动,既别人提交了哪些文件的改动,你还没更新到本地,如下:

6,SVN 更新 SVN Update
更新本地代码与 SVN 服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择"SVN Update" (获取指定版本中的内容,点击右键执行 SVN 菜单中的"Update to reversion"),就可以了
7,SVN 提交 SVN Commit
提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作
8,版本库浏览 Repo-browser
此功能是用来浏览需要查看的资料库,在本地文件夹下点击右键,选择 TortoiseSVNàRepo-browser,在弹出的对话框中输入资料库地址,再输入用户名和密码,就能查看到你需要查看到版本库的内容,在这你还能看到那些文件被谁锁定了

集成 IDEA
关于在 IntelliJ IDEA 上使用 subversion 插件:https://www.jetbrains.com/zh-cn/help/idea/using-subversion-integration.html
当然官方的文档也没图,不容易理解,这是其他同学的教程:https://blog.csdn.net/yyongsheng/article/details/121299168