SVN版本回退与常用命令总结
一、SVN 版本回退三种方法:
“Update item to this version”,“Revert to this version”,“Revert changes from this version”,
在讲解这三个选项的作用之前,我们还是先来假定一个使用情景,假设我们的项目文件一共有8个版本,它版本号分别是1,2,3,4,5,6,7,8。
Update item to this version
这个选项的作用是将文件版本更新到对应所选的版本(当然内容也修改到了相应的版本)。如果我们是在版本4这里点击“Update item to this version”,表示5~8版本所作的修改全部作废,这个文件的历史回退到了版本4那个时代,但是需要注意的是,此时文件的版本是4,并不是最新的。我们知道SVN工具中如果文件不是最新版本就无法上传,所以说这个功能只是用来暂时还原一下版本,来查询某个问题的,不能将还原后的文件上传。
Revert to this version
这个选项的作用是将文件的内容更新到对应的版本,版本号没有发生变化。如果我们是在版本4这里点击“Revert to this version”,表示5~8版本所作的修改全部被还原,文件和版本4的文件一模一样,但需要注意的是这项操作相当于我们把版本4这个文件拷贝了一份赋值给了当前目录下的文件,此时的文件版本还是8,并且是可以提交的,提交以后文件的版本变成了9,增加了一个新的版本,虽然这个版本和版本4的内容是一样的。
Revert changes from this version
这个选项的作用是将对应版本的修改还原,文件的版本号不发生变化,相当于在当前本版本上剔除某些版本所作的改变。如果我们是在版本4这里点击“Revert changes from this version”,表示版本4所作的修改被抹杀了,只剩下除版本4以外的7个修改了,但是此时文件是可以上传的,并且会生成新的版本9,只是版本9只包括除版本4以外的7次修改。这个选项是可以选择多个版本的,如果我们选择4,5,6,7这四个版本点击“Revert changes from this revision”,那么这几次修改都会被抹杀。如果我们选择5,6,7,8这四个版本点击“Revert changes from this revision”,表示取消这几个版本的修改,实际上和在版本4这里点击“Revert to this version”的作用是一样的。
总结
1、Update item to this version:回退文件的内容和版本到指定的版本A,文件内容与版本A一致,此时文件的版本也为A,但是无法上传文件。
此命令可以在指定版本上调测,用于修改和定位现网问题,但是不能提交。如果只是调测没有任何修改,可以直接 svn update 更新回到最新的版本。如果修改了, svn update的时候会报 冲突, 必须点击resolve conflict uses theris 回到最新版本。 如果resolve conflict uses main 会导致这个版本之后的所有修改都没有了。不要使用 marked as resolved,这个命令会在你的代码里 用 》》》》》等符号标记出你 修改了哪些,指定版本是哪些, 最新版本是哪些,导致代码不可运行。
2、Revert to this version:只是回退文件的内容到指定版本A,文件版本还是最新版本, 相当于把指定版本复制过来形成了一个新的版本,把指定版本和最新版本之间的改动都改回去了,提交的时候 文件会提示当前版本和最新版本所有的不同点,其实就是一个新的版本,可以上传,并且会在最新的版本号上加1,形成新的版本。
可以在这个版本上调测或定位问题,如果新提交的代码出现重大失误,可以使用此方法来回退。但是使用 svn update 无法回到最新的版本了,因为svn已经把回退的这个版本作为最新的版本了。因此要慎用这个命令,只有在一次提交出现重大失误,需要回退的时候才用。
(用这个命令可以看某个版本后的所有修改,在未提交前可以删掉所有代码,直接 svn update 回到最新版本。)
右击 代码目录 TortoiseSVN -->show log -->在显示的版本上右击 就会看到Revert to this version 等操作指令。
3、Revert changes from this version:还原对应版本所作的改变,会将所指定的版本所作的修改直接抹杀,可以对多个版本操作,注意很可能会出现冲突,需要手动解决。 不建议使用这个命令。
二、SVN创建标签的方法
方法一:TortoiseSVN客户端浏览创建
选中需要创建标签的目录,右键–>copy to,在弹出框中输入新建标签所在的URL地址,填写log信息,确定。
方法二:本地创建
本地副本更新到最新,选择要创建标签的文件目录–>TortosieSVN–>右键–>branch/tag,To path中选择标签路径,选择标签创建的版本,填写Log信息,确定。