将一台服务器上已有的SVN仓库数据整体迁移到另外一台机器上,要保留所有的版本号和版本信息,需要以下过程来解决
No.1 将准备要迁移的仓库导出 命令:
我们先要cd进要导出库的根目录,假设在/data/svndata/kuaijicd /data/svndata/kuaiji
svnadmin dump kuaiji > svn_kuaiji_dump
No.2 在新的服务器上创建心的仓库 命令:svnadmin create /data/svndata/kuaiji
No.3 导入刚导出的文件svn_dump 命令:svnadmin load /data/svndata/kuaiji < svn_kuaiji_dump
#(svn_kuaiji_dump可以存放在任何地方,这地方写绝对路径和相对路径都可以)
// 注意,以上操作会导致所有的配置丢失,比如密码、权限控制等,只要将原有的conf文件覆盖新的就可以了
在整个操作的过程中要注意仓储路径问题,为避免出错,可以使用绝对路径来表示以上内容,仅以No.3 做实例解析
svnadmin load /data/svndata/kuaiji < svn_kuaiji_dump 解析:新的仓储SVNROOT就创建在/data/svndata目录下,而导出的文件也已将放在了本地的/data/svndata目录下 网上有提供一种直接将原仓库目录copy到另一台机器上,然后修改apache 的svn路径指向新的地址的做法,我也尝试过一次,发现有丢失信息,具体不详,所以不推荐
还有一个问题,我查看我的原始准备导出的仓库文件大小只有2.2G左右,而使用svnadmin 命令导出后的文件却有5G之多,中间的差别我也不甚了解,所以推荐使用svn的命令导入仓库。