一、SVN介绍
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
SVN作用: 1、版本控制 2、备份服务器
SVN是集中式管理。GIT是分布式的管理。
二、安装使用SVN
(1)下载并安装SVN服务:VisualSVN server
下载地址https://www.visualsvn.com/server/download/
(2)下载并安装SVN客户端:TortoiseSVN
TortoiseSVN下载地址 http://tortoisesvn.net/downloads.html
TortoiseSVN文档 https://osdn.net/projects/tortoisesvn/storage/
安装细节这两篇讲解都很详细
https://www.cnblogs.com/yankyblogs/p/7282752.html
https://blog.csdn.net/daobantutu/article/details/60467185
TortoiseSVN新人使用指南
https://blog.csdn.net/maplejaw_/article/details/52874348
Eclipse安装SVN插件三种方式
https://blog.csdn.net/SIMBA1949/article/details/80070130
Eclipse安装SVN插件安装完成后,连接连接远程SVN报错
SVN: '0x00400006: Validate Repository Location' operation finished with error: Selected SVN connector library is not available or cannot be loaded.
If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Connector.
Selected SVN connector library is not available or cannot be loaded.
If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
解决参考https://blog.csdn.net/doegoo/article/details/72877160
三、使用SVN对代码进行版本控制(常用操作)
Subversion的在线文档
http://svnbook.red-bean.com/en/1.5/svn-book.html
使用SVN对代码进行版本控制
https://blog.csdn.net/lijingswjtu/article/details/84036457
https://www.jianshu.com/p/994a9f34f878
https://www.jianshu.com/p/fc8443a9aafe
四、SVN中【update item to revision】与【revert to this revision】的区别
及【revert changes from this version】
假如我们有许多个版本,版本号分别是1-10
【update item to revision】(更新项目至此版本)将文件版本更新到对应所选的版本(内容也修改到了相应的版本)。(但不是最新的版本的。SVN工具中如果文件不是最新版本就无法上传,所以这个功能只是用来暂时还原一下版本,来查询某个问题的,不能将还原后的文件上传。最新的版本SVN Update后又变成之前的内容了。只是作为只读模式版本无法提交所作的更改,一般作查看历史版本用,无其它用途。)
【revert to this revision】(还原为此版本)将文件内容回滚到特定的历史版本(但版本号没有发生变化)。如果我们在8这里选择【revert to this version】那么8之后的9,10的操作都会被消除。相当于我们把版本8这个文件拷贝了一份赋值给了当前目录下的文件,此时的文件版本还是8,并且是可以提交的,提交以后文件的版本变成了9,增加了一个新的版本。
如果你想永久恢复到以前的某个版本,就用【revert to this revision】
如果你只是想临时恢复到以前的某个版本,就用【update item to revision】比较常用
如果我们在8这里选择【revert to this revision】那么8之后的9,10的操作都会被消除。我们过段时间又想回退到版本10咋办。
如果在8选择【revert changes from this version】(还原此版本的更改)那么相对于现在8版本的修改将会被消除。
如果同时选择8,9【revert changes from this version】那么8和9两个版本的所做的修改都会被消除。
https://blog.csdn.net/albertsh/article/details/52964037
五、SVN版本控制:主干(trunk)、分支(branch )、标记(tag)
【trunk】是用来做主方向开发的(即在开发阶段的代码都提交到该目录上),一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。
【branch】是用来做并行开发的,branch主要用于新功能的开发,要经常同步,这里的并行是指和trunk进行比较。
【tag】是用来做一个milestone的,不管是不是发布版本,但都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读的标记。
TortoiseSVN打分支、合并分支、切换分支
https://blog.csdn.net/justry_deng/article/details/82259470
https://blog.csdn.net/vbirdbest/article/details/51122637
https://blog.csdn.net/eggcalm/article/details/6606520
https://blog.csdn.net/daybreak1209/article/details/50380504