一名热爱体感技术的
业余专业开发人员

[转]SVN回滚版本

http://keenwon.com/1072.html

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之后,回滚完成。