今天调试代码时,发现同事已经修改了多处,已经不满足调试的条件。于是,打算回退版本以便调试。
问题:只需要回退本地的代码版本,使用show log -> revert to revesion,会不会将svn服务器上的代码覆盖了?
本地revert之后,发现update操作不生效了。我想应该是本地的版本已经是最高的了,update不生效。如果有其他人更新代码,再update应该就可以了。
后来发现,还有一种代码回退的方式,就是update to revesion。
**************************************************************
下面贴一份网友的,关于二者之间的区别:
SVN中update to revision与revert to revision的区别
假设我们有许多个版本,版本号分别是1-10
如果我们在7这里选择revert to this version那么7之后的8,9,10的操作都会被消除
如果在7选择revert changes from this version那么7版本的修改将会被消除
如果同时选择7,8revert changes from this version那么7和8两个版本的所做的修改都会被消除
update to revision和revert to revision很像,都会融合你本地未提交的修改。它们2个的区别是:
revert to revision会把这个rev作为最新版本,而update to revision不会。
所以 revert to revision 相当于 先update to revision,然后copy该内容到其他地方,然后update,然后再把内容覆盖回来。
所以如果你想永久恢复到以前的某个版本,就用revert to revision
如果你只是想临时恢复到以前的某个版本,那么就用update to revision
update to revision比revert to revision要常用得多
看看tortoise svn的右键菜单就知道了,有update to revision,但没有revert to revision,revert to revision在show Log里面右键某版本.
网友评论