svn服务器端回退版本

在SVN服务器上操作(不推荐)

由于误操作,不小心将错误的代码提交到了svn上,于是想在服务器上撤销本次提交,经过尝试,发现进行以下步骤的操作即可彻底删除本次提交:
1.首先找到本次提交后生成的版本号,例如为r224.
2.登录到svn服务器上,进入到项目的svn目录.
3.进入db目录,删除此目录下的rep-cache.db。并修改此目录下的current文件,将其修改为上一个版本,例如233.
4.删除db/revs/0/目录下的224文件。
5.删除db/revprops/0/目录下的224文件。
至此,服务器端已经回退到r223版本,此时可以将本地下载到的代码删除,重新从svn服务器上下载一份代码,然后基于此代码继续修改提交。
如果在windows下使用TortoiseSVN,还需要删除本地的缓存,不然会出现再次提交后,其日志显示出现错误的情况,删除方法为点击TortoiseSVN的settings,在选择"Saved Data",点击Clear清除Log message即可。

如何在客户端将SVN服务器上的版本回退到一个旧的历史版本?(实际使用该方法)

我现在的做法很笨,直接从SVN拿一份旧版本下来,把所有.SVN文件夹都删除掉,然后覆盖本地版本,最后将本发版本做为修改再COMMIT到SVN服务器上去,这样,SVN服务器上实际上被“更新”成了一个“旧版本”

恩,我明白了,
先export出一个旧的版本出来,
然后用这个库覆盖当前工作版本,
然后再commit上去,
这样,尽管SERVER上有了一个新版本,
但是它事实上仍然是一个对旧版本的恢复,
并且,那个旧版本以后的所有更新,都仍然存在。

SVN代码的回滚:

  1. 不丢失新建的文件,获得最新的SVN版本控制TortoiseSVN-ShowLog-选中你要回滚的版本-右键-Export,之后将修改的文件覆盖到你的最新版本,commit即可。

  2. 编辑了代码,但是想放弃修改,可以直接TortoiseSVN-revert就可以更新到工程的最新版本。

  3. 回到某一个版本,可以直接选择TortoiseSVN-update to reversion,这样可以把版本回退到选中的版本,SVN并没有显示出有冲突,并且新建立的文件还在,但是这种不能直接在回退的版本上编辑,因为SVN的控制版本还是在最新的主干上,需要update并解决冲突。

  4. 从日志回滚到需要的版本,show log-选中需要的版本-右键-update item to reversion.SVN并没有冲突,并且新建的文件还在,但是也不能在回退的版本上编辑,需要update解决冲突。

  5. 可以直接show log-选中要清除的版本-右键-revert changes from this reversion,这样可以直接解决冲突并提交。但是新建的文件都没有了,选中的这个版本就没有了。

  6. show log-选中需要回退到的版本-右键-revert to this reversion,则选中的版本之后的版本就没有了,作废了。



你可能感兴趣的:(版本管理:SVN,Git)