SVN 回滚版本
2014-04-09 · 585 chars · 3 min read
SVN 是一个版本管理工具,在工作中经常使用,尤其是多人合作开发的时候,版本管理显得更加重要。需要使用回退的场景往往都比较“紧急”,今天就记录一下在使用 SVN 的时候怎么回退到指定的版本,方便以后随时查看。
方法一#
右击文件(也可以是文件夹),TortoiseSVN – show log,右击你想要回滚到的版本。
可以看到两个选项:“Revert to this revision”和“Revert changes from this revision”。下面一个一个说:
我们假设有个文件 a.js,有版本 1,版本 2…版本 5。首先看“Revert to this revision”,这个比较好理解,也比较常用。就是把文件恢复到某个版本,然后 commit,文件就回滚成功了 。回滚成功后,所有的历史还存在。例如回滚到版本 4,commit 之后,会出现新的版本 6,但是他的内容和版本 4 是一样的。
再来看看“Revert changes from this revision”,这个就比较纠结了,他的意思是“取消这个版本的修改”,例如我们在版本 1 上执行“Revert changes from this revision”,这时候问题就来了,你取消了一个“已经过期的修改”,那么这个文件该使用版本 1 的前一个版本呢?还是是使用当前的最新版本呢?SVN 知道该怎么做,所以它提示冲突,把选择权交给用户:
如果我们同时选中版本 1 到最新版,执行“Revert changes from this revision”,就没有问题了,因为你把版本 1 之后的所有修改都“取消”了,SVN 自然把文件恢复到版本 1 之前的版本。但是这和“Revert to this revision”的作用一样了。所以我们一般使用“Revert to this revision”就够了。
方法二#
另一个方法就是使用 merge 命令:
选择第三个,“merge two different trees”,大意就是合并两个版本。
之后选择:把最新版本合并成你想回滚到的那个版本:
点击 next,后面什么都不用改,点击”Merge”
文件就回滚到了指定的版本了,commit 之后,回滚完成。