前言
今天来研究一下svn中的版本回退操作,以工程版本号270举例
三种回退操作
一、 Update item to revision
这个命令就是仅仅去查看过去的版本,无法进行其他操作(无法进行提交等操作)
执行操作后会回退掉271 ~ 276版本的更改,使本地的代码为270版本的代码,相当于270版本之后的代码本地还没有更新的状态,更新了就会回来。该操作主要用于测试看270版本代码的表现是否正确,如果正确就将问题代码锁定在271 ~ 276之间
执行Update item to revision操作
执行Update item to revision操作后的Log
可以看到执行操作后,当前工程的版本在270,此时Commit也为空,虽然本地代码与服务器代码不同,但因为是版本较旧造成的,所以不能提交
Commit
如果此时还想回到最新的版本,执行svn更新,直接拉取最新代码即可。 更新了就回来了
Update
Update后的Log
二、 Revert to this revision
这个的做大用途就是老板的需求不确定,刚开始说方案一不行,然后做了方案二,方案二老板感觉也不行,然后就做了方案三,方案三老板感觉也不行,然后就做了方案四。。。。。。最后,你做了100个方案。有一天,老板突然说方案50我记得不错,你让我看看方案50吧,你是不是就瞬间就想破口大骂了,因为你的方案50早就丢了。最后,老板说还是用方案一吧,而此时方案一也已经被该丢了,此时这个Revert to this revision 就排上了用场,他可以让你把每一个版本都保存下来,方便回来进行再次查看、修改和提交。
执行操作后会回退掉271 ~ 276版本的更改,使本地的代码为270版本的代码,相当于一次新的修改,只不过这次修改是将原来的修改作废。就好像策划先让加了某个功能,加上后又说不想要了,一般用在这种情形。不同于Update item to revision的是,这里因为是真正意义上的回退修改(可以提交的)所以会有一个二级弹窗提示。
二级弹窗提示
Revert之后可以看到svn服务器认为现在本地是最新代码,这也意味着本地所有的提交都将生成最新版本277
确认执行操作后的Log
此时更新显示没有任何更新,因为已经是最新版(马赛克掉的是路径)
Update
Commit时会显示回退的更改,而这些更改都是271 ~ 276的回退,注意此时一旦提交,将服务器上的版本号变成277的同时也意味着服务器上的最新版本其实和270版本相同,271 ~ 276只是过客。如果是自己的误操作,一定不要上传并且要把自己的更改Revert掉。
Commit
三、 Revert changes from this revision
该操作的使用方法和作用和Revert to this revision 几乎一模一样,唯一的不同就是:Revert to this revision 会回退到指定的版本并且保留该版本所做出的修改,而Revert changes from this revision 会回退到指定的版本不保留该版本所做出的修改。 该操作的意义是将某一条修改比如270的修改回退,其它同Revert to this revision。可以选中多条比如同时选中270、271、272此时该选项就变成了 Revert changes from these revisions
Revert changes from these revisions
|