3

我正在尝试在运行 OS X Server 的新 XServe 服务器上执行从 cvs 到 svn 的迁移。OS X 预装的 cvs2svn 和 dbm 库之间存在已知冲突。错误是:

错误:cvs2svn 使用 anydbm 包,它依赖于较低级别的 dbm 库。您的系统有 dbm,已知 cvs2svn 有问题。要使用 cvs2svn,您必须安装一个 Python dbm 库,而不是 dumbdbm 或 dbm。有关更多信息,请参阅http://python.org/doc/current/lib/module-anydbm.html

我按照cvs2svn 常见问题解答中的所有规定步骤操作,但错误仍然存​​在。有谁知道完成此任务的替代方法,或其他网站为这个看似常见的问题提供不同的解决方案?

4

5 回答 5

7

由于 CVS 和 Subversion 存储库实际上只是文件的集合,解决此问题的一种方法可能是将 CVS 存储库复制到可以成功运行 cvs2svn 的机器上,运行它以转换为 Subversion,然后将新的存储库复制回你的服务器。这种方法的额外好处是,在执行此转换步骤时,您不会冒意外弄乱服务器配置的风险。

于 2009-07-27T20:29:25.373 回答
3

cvs2svn 本身在 MacPorts 中可用,因此,您可以使用 MacPorts 安装 cvs2svn,而不仅仅是 dbm 库:

port install cvs2svn

如果尚未安装,它还将安装 MacPorts 版本的 python2.5 和其他依赖项。这并没有什么坏处,但需要一点时间和一点额外的空间。优点是您应该有一个工作的、受支持的版本,而不必解决进一步的依赖问题。

于 2009-07-27T22:56:40.537 回答
1

如果您已经安装了 subversion,您是否确保在系统变量中正确设置了路径?

我遇到了同样的问题,我最终不得不在 Python_Home 中添加变量和使用路径

C:\Pyton27\

于 2012-07-31T17:15:54.583 回答
1

您总是可以使用例如 MacPorts 手动安装其他 dbm 库。

于 2009-07-27T20:28:23.877 回答
0

也许听起来有点疯狂或矫枉过正,但考虑使用'git'(例如MacPorts 版本)。它克隆完整的 CVS 历史并将其推送到 Subversion 存储库中。以下步骤应该可以完成工作(查看命令手册,git help 'cmd'):

    端口安装 git-core cvs cvsps svn(如有必要)

    为 git 和 init cvs git repo 创建目录(比如说“cd ~/cvsgit”):
    git cvsimport -v -d CVSROOT 模块

    使用主干、标签、分支创建新的 subversion 存储库 (svnadmin)
    现在将此新存储库导入到 git 存储库:
    git svn clone -s file:///path/to/svnrepo(没有主干、标签、分支)
    这将创建一个 svnrepo 目录;重命名并将其移动到例如 ~/svngit

    现在将 cvs git repo 添加到 svn repo:
    cd ~/svngit
    git 远程添加 cvsrepo ~/cvsgit
    git 获取 cvsrepo

    现在将 cvs master 分支合并到本地 svn master 分支:
    git 合并遥控器/cvsrepo/master

    最后提交到(真正的)svn 存储库:
    git svn dcommit

你完成了!

于 2009-07-27T21:28:39.933 回答