如果数据较多,可以用更快的方法:使用svn cp命令。
如上面例子中,如果整个trunk已被删除,通过svn log命令查明删除前版本号1151,删除后版本号1152,现在版本号1155,则运行命令:
svn cp -r 1151 http://www.scmbbs.com/repos/project1/trunk/ http://www.scmbbs.com/repos/project1/ -m"recover from wrong deleted"
可以快速将trunk的1151版本恢复。注意:此语法与上面svn merge不同,是“from 历史,to 最新位置”形式。
一般情况下,用svn cp命令速度更快,直接操作svn库url,不需要svn commit。
但有时候如果trunk被误删除后,又被添加了新的内容如:trunk/newproject 目录,则不能用svn cp命令恢复了。如果trunk/数据较少时,可以用svn merge(见1楼)。如果trunk/数据非常大量,则可以先svn checkout出trunk/newproject到本地备份,再svn delete删除掉trunk/,然后用svn cp恢复1151版本的trunk,再重新添加备份到本地newproject目录,这种方法往往比svn merge更快。
因为svn merge需要checkout、再commit,大数据量时,速度会很慢。