如果文档没有提交,还原是很容易的,只需执行还原(revert)就可以了。有时候,已经提交了代码,结果发现了问题,需要回退到之前提交的版本,就不是很容易了。
这时候的还原,其实是将以前的某个修订本(revision)覆盖当前的本地工作拷贝。然后再提交这些改动,成为新的修订本。
下面演示一下。
首先提交了一个版本的改动,这是以后需要还原回来,这里,为了以后还原方便,要在提交的消息中说明改动了什么。(这一步在开发中是必须的,是纪律)
下面,再修改一下项目,然后提交一次,这里故意增加一个文件。
提交以后,后悔了,想恢复到前一个修订版。虽然可以通过版本号进行覆盖还原,但是一般人是无法记忆这个版本号的,另外就是实际情况往往更复杂,不会像示例中那样是相邻的两个修订版。
所以提交修订版时的注解消息就显得特别重要。
这时可以通过svn的日志功能查看到这些版本和它们的注释消息。
看到历次版本的消息内容。
这样,根据注释,我们很容易找到需要还原到以前的那个修订版。如果不放心,我们还可以根据上下文菜单,对比两个修订版的区别。
看比较结果。可以看出,增加了一个文件,另外一个文件中有一处差异。
那么,可以确定是从125修订版恢复(还原)。
更改后的项目,相当于用125修订版还原了126修订版。
可以看到126版本添加的文件不见了,另外VfsDemo.java文件也还原到125版本的内容。这时提交将成为127版本,这个版本其实就是125版本。算是还原了主干(trunk)上的代码。
刷新历史,可以看到修订版已经生效。