【问题标题】:How to import CVS to git scm?如何将 CVS 导入 git scm?
【发布时间】:2012-03-25 11:31:57
【问题描述】:

为了导入 CVS 模块的修订版, 我正在使用:

/usr/lib/git-core/git-cvsimport -a -i -p r,revisionname -k -v -d :pserver:user@xxx.com:2401/srv/cvs/rootname modulename

它工作了一段时间,然后我得到类似 cvsps 的错误。如何确定 cvsps 错误是什么?

【问题讨论】:

  • 我收到大量警告...与 strip_path 不匹配,最后我收到“git cvsimport:致命:cvsps 报告错误”
  • 为 cvsps 找到了一个 -v 标志,现在我得到了 cvs_direct: cvs_direct: rlog: read M state: 0 read line: cvs_direct: rlog: read M 1) user: Removed serial(s) hugggggggggggggggggggggggggggggggge line字符数 git cvsimport: fatal: cvsps 报告错误git cvsimport: fatal: cvsps 报告错误
  • 我放弃了这种方法,很多人建议不要使用 git-cvsimport。所以现在我正在使用 cvs2git。我在小型项目上取得了成功。当我尝试真实的东西时,我遇到了一个不同的问题。 cvs2git --username=reza -v --blobfile=./blob.txt --dumpfile=./dump.txt ./localCVSTree/repo 我看到创建的是blob文件而不是转储文件。那是什么意思?出错了?
  • 嗨,reza,你能详细解释一下 cvs2git 是如何做到的吗?请将其附加到您的答案中。
  • svn2git 的问题是我不断收到一个我不理解或找不到任何帮助/解决方法的错误。我很幸运,我们在 CVS 中有一个稍微过时的代码版本。使用 cvs2git,我没有看到错误并且能够将代码导入 git。我的解决方案只有在 CVS 是一个选项时才有用。如果没有,我会尝试 svn2git,也许你会成功。

标签: git cvs git-cvs


【解决方案1】:

放弃这种方法并使用cvs2git

cvs2git 是一个工具,可用于将 CVS 存储库迁移到更新的版本控制工具,包括 git。

示例用法:

cvs2git \
    --blobfile=cvs2git-tmp/git-blob.dat \
    --dumpfile=cvs2git-tmp/git-dump.dat \
    --username=cvs2git \
    /path/to/cvs/repo

【讨论】:

    【解决方案2】:

    来自http://git-scm.com/docs/git-cvsimport

    警告:git cvsimport 使用 cvsps 版本 2,该版本已被弃用;它不适用于 cvsps 版本 3 及更高版本。如果您正在执行 CVS 存储库的一次性导入,请考虑使用 cvs2git 或 parsecvs。

    检查您是否有 cvsps 版本 3 或更高版本

    $ cvsps --version
    

    如果你可以将它降级到 cvsps 版本 2,你就完成了。

    主要区别在于cvs2git 不是增量的(使用this 解决方法除外),因此它针对一次性结帐。使用cvsimport,您可以进行增量更新,并及时了解 cvs 存储库。

    【讨论】:

      【解决方案3】:

      您可以将其降级为cvsps-2.1 并重新测试,因为git cvsimport 不能与cvsps-3.x 一起正常工作,因为它具有不同的语法。

      在 OSX 上你可以(拥有brew):

      brew tap homebrew/versions
      brew install cvsps2
      brew unlink cvsps
      brew link --overwrite cvsps2
      

      【讨论】:

      • cobite 网站似乎已经放弃了他们的 cvsps 页面(谁能责怪他们)。这些文件很高兴地在 Wayback Machine 中。您可以brew edit cvsps2 并将网址设置为http://web.archive.org/web/20160127055537/http://www.cobite.com/cvsps/cvsps-2.1.tar.gz
      • FWIW 我创建了一个安装 cvsps2 的公式:github.com/Frizlab/homebrew-Perso/blob/master/Formula/…
      【解决方案4】:

      先试试 cvs-fast-export:

      http://www.catb.org/esr/cvs-fast-export/

      在一些奇怪的情况下它会彻底失败。如果发生这种情况,请尝试 cvs2git。您不想先使用 cvs2git,因为它非常慢,生成的结果格式不方便,不转换 cvsignore 文件,还有其他一些小问题。

      不要使用 git-cvsimport 或任何版本的 cvsps - 它们非常糟糕,并且可能会放错您的分支连接。我是 cvsps-3.x 版本的负责人;我对代码进行了深六化处理,以支持成为 cvs-fast-export 的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-12
        • 2014-07-10
        • 2016-04-03
        • 1970-01-01
        • 2012-06-15
        • 2019-04-02
        相关资源
        最近更新 更多