前言
今天来研究一下svn中的版本回退操作,以工程版本号270举例
![三种回退操作](https://i-blog.csdnimg.cn/blog_migrate/298f5effab5716ee8635b33fb6912cd1.png)
一、 Update item to revision
执行操作后会回退掉271 ~ 276版本的更改,使本地的代码为270版本的代码,相当于270版本之后的代码本地还没有更新的状态,更新了就会回来。该操作主要用于测试看270版本代码的表现是否正确,如果正确就将问题代码锁定在271 ~ 276之间
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e1766f94cf2c03599f0bb8080f7660bb.png)
执行Update item to revision操作 |
---|
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4b83ad57b92383fea42cec7e97c377f7.png)
执行Update item to revision操作后的Log |
---|
可以看到执行操作后,当前工程的版本在270,此时Commit也为空,虽然本地代码与服务器代码不同,但因为是版本较旧造成的,所以不能提交
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/31578fe8113544da6cdaeed1dc18f755.png)
更新了就回来了
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b7511a0531082815f3fa0a4c66d2709a.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ac8ba0fc5f86ff8bc9ae324470b60b38.png)
二、 Revert to this revision
执行操作后会回退掉271 ~ 276版本的更改,使本地的代码为270版本的代码,相当于一次新的修改,只不过这次修改是将原来的修改作废。就好像策划先让加了某个功能,加上后又说不想要了,一般用在这种情形。不同于Update item to revision的是,这里因为是真正意义上的回退修改(可以提交的)所以会有一个二级弹窗提示
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5797518ac8656973c48e16cd408df0a5.png)
Revert之后可以看到svn服务器认为现在本地是最新代码,这也意味着本地所有的提交都将生成最新版本277
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e8d515b82a5fa8501b711d9d59a80c97.png)
此时更新显示没有任何更新,因为已经是最新版(马赛克掉的是路径)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b9cd42f316b85e0811286fd14ef97f3a.png)
Commit时会显示回退的更改,而这些更改都是271 ~ 276的回退,注意此时一旦提交,将服务器上的版本号变成277的同时也意味着服务器上的最新版本其实和270版本相同,271 ~ 276只是过客。如果是自己的误操作,一定不要上传并且要把自己的更改Revert掉
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/df8474a8e57e44d6e64967ae94abce93.png)
三、 Revert changes from this revision
该操作的意义是将某一条修改比如270的修改回退,其它同Revert to this revision。可以选中多条比如同时选中270、271、272此时该选项就变成了 Revert changes from these revisions
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e732a2ebc7c68f4566f95d53bcc49617.png)
Revert changes from these revisions |
---|
完