用于执行 cvs 到 svn 迁移的 cvs2svn 替代方案

发布于 2024-07-29 11:02:35 字数 600 浏览 7 评论 0原文

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

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

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

I am trying to perform a migration from cvs to svn on my our new XServe server which is running OS X Server. There is a known conflict between the cvs2svn and dbm libraries that come pre-installed with OS X. The error is:

ERROR: cvs2svn uses the anydbm package, which depends on lower level dbm libraries. Your system has dbm, with which cvs2svn is known to have problems. To use cvs2svn, you must install a Python dbm library other than dumbdbm or dbm. See http://python.org/doc/current/lib/module-anydbm.html for more information.

I followed all the prescribed steps in the cvs2svn FAQ but the error still persists. Does anyone know of an alternative way to accomplish this task, or another website that offer a different solution to this seemingly common problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

一抹苦笑 2024-08-05 11:02:36

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

Since CVS and Subversion repositories are really just collections of files, one way to work around this problem might be to copy your CVS repository to a machine where cvs2svn can run successfully, run it to convert to Subversion, and then copy the new repository back to your server. The added benefit of this method is that you won't run the risk of accidentally messing up your server configuration while doing this conversion step.

星星的軌跡 2024-08-05 11:02:36

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

port install cvs2svn

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

cvs2svn itself is available in MacPorts so, instead of just the dbm libraries, you could install cvs2svn using MacPorts:

port install cvs2svn

If not already installed, it will also install the MacPorts version of python2.5 and other dependencies. There's no harm in that but it will take a little time and a little extra space. The advantage is that you should have a working, supported version without having to fight further dependency problems.

内心荒芜 2024-08-05 11:02:36

您始终可以使用 MacPorts 等手动安装其他 dbm 库。

You could always manually install other dbm libraries using e.g. MacPorts.

将军与妓 2024-08-05 11:02:36

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

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

C:\Pyton27\

If you already have subversion installed , Did you make sure that the path is set right in your system variables?

I had that same issue on mine and I ended up having to add the variables in Python_Home and path to use

C:\Pyton27\

把昨日还给我 2024-08-05 11:02:36

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

    port install git-core cvs cvsps svn (if necessary)

    create directory for git and init cvs git repo (let´s say ´cd ~/cvsgit´):
    git cvsimport -v -d CVSROOT module

    create new subversion repository (svnadmin) with trunk, tags, branches
    now import this new repository to a git repository:
    git svn clone -s file:///path/to/svnrepo  (without trunk, tags, branches)
    this creates a svnrepo directory; rename and move it to e.g. ~/svngit

    now add the cvs git repo to svn repo:
    cd ~/svngit
    git remote add cvsrepo ~/cvsgit
    git fetch cvsrepo

    now merge the cvs master branch to the local svn master branch:
    git merge remotes/cvsrepo/master

    finally commit to (real) svn repository:
    git svn dcommit

你已经完成了!

Maybe sounds a bit crazy or overkill, but think about using 'git' (e.g. MacPorts version). It clones the complete CVS history and pushes it into a Subversion repository. The following steps should do the work (look at the command's manuals, git help ´cmd´):

    port install git-core cvs cvsps svn (if necessary)

    create directory for git and init cvs git repo (let´s say ´cd ~/cvsgit´):
    git cvsimport -v -d CVSROOT module

    create new subversion repository (svnadmin) with trunk, tags, branches
    now import this new repository to a git repository:
    git svn clone -s file:///path/to/svnrepo  (without trunk, tags, branches)
    this creates a svnrepo directory; rename and move it to e.g. ~/svngit

    now add the cvs git repo to svn repo:
    cd ~/svngit
    git remote add cvsrepo ~/cvsgit
    git fetch cvsrepo

    now merge the cvs master branch to the local svn master branch:
    git merge remotes/cvsrepo/master

    finally commit to (real) svn repository:
    git svn dcommit

You're done!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文