我无法使用svnadmin dump和load命令将存储库从运行Ubuntu 12.04的旧服务器迁移到运行FreeNAS 9.3(基于BSD)的新服务器。当我尝试加载存储库时,我得到E200029错误,无法打开rep-cache数据库或执行原子启动,如此screenshot所示,并且没有任何内容填充存储库。我已经阅读了svn-book手册并在线研究解决方案,重新转储了一个存储库,尝试将其作为root和subversion:subversion帐户,并使用空目录填充存储库,但我还没有能够找出问题所在。
我的设置是一个多项目存储库,其中包含单个项目的子文件夹,使用该项目文件夹下的标记/分支/主干结构(给定项目编号),如下所示。
$ svn list file:///var/svn/multi-project-repo
project-A/
project-B/
$ svn list file:///var/svn/multi-project-repo/project-A
trunk/
branches/
tags/
$
大约有30个项目文件夹。当前的Ubuntu服务器使用的是svnadmin --version 1.6.17,而新的FreeNAS服务器使用的是svnadmin --version 1.8.13。如果这是一个问题,我不知道如何解决这些差异,因为Ubuntu在软件包存储库中没有更新版本。
我使用以下命令创建整个存储库的转储文件,没有任何特定的标志或过滤。我只是想在新服务器上复制相同的结构。这是在Ubuntu服务器上的cron作业中以root身份运行的。
svnadmin dump --quiet /home/svn/repos/projects > /home/svn/migrate/projects.dmp
然后,我在FreeNAS服务器BSD jail(pkg install subversion)中安装了subversion并创建了"项目"库。最初,它只是一个空的存储库,无法加载,但由于只有30个子目录,我还尝试使用我的Windows机器上的SVN客户端使用空的项目目录(包括分支/标记/卡车子目录)填充存储库,然后尝试通过shell将存储库从转储装载到FreeNAS jail中,作为root用户。那也没能加载同样的错误。
svnadmin load /var/svn/repos/projects < /var/svn/dump/projects.dmp
原始存储库和新存储库的绝对路径是否相同?任何想法我还能尝试什么或可能导致问题的原因?
感谢。
注意:在我的研究中,我确实在一个特定于颠覆的论坛中交叉发布了这个问题,但没有得到任何回复。
答案 0 :(得分:1)
我找出了错误链接库可能导致的错误。在创建存储库时使用以下内容更正了问题,并允许我加载存储库。
# svnadmin create --pre-1.6-compatible /path/to/repos