在 Centos8 中 CVS 到 GIT

CVS to GIT in Centos8

Centos8 中缺少 cvsimport。无法安装。 现在我尝试使用快速导入。大多数回购都是可以的,但它会因某些具有二进制文件的回购而失败。我认为 cvs-fast-export

中存在错误
$ cat ../repoexport.fi|git fast-import fatal: Unsupported command:
mark :11 fast-import: dumping crash report to
.git/fast_import_crash_19654 Unpacking objects: 100% (1/1), 21 bytes |21.00 KiB/s, done.

这是来自崩溃报告

Most Recent Commands Before Crash
---------------------------------
  blob
  mark :1
  data 30790
  blob
  mark :2
  data 7060
  blob
  mark :3
  data 30650
  blob
  mark :4
  data 516323
  blob
  mark :5
  data 355588
  blob
  mark :6
  data 497407
  blob
  mark :7
  data 4397056
  blob
  mark :8
  data 807
  blob
  mark :9
  data 299008
  blob
  mark :10
  data 196608
  blob
  mark :11
* blob

任何将 cvs 转换为 git 的解决方案?

根据原问题中的上述评论交流发布解决方案

我建议尝试 cvs2git

@RamananT 说

I Tried and unfortunately cvs2git also failed with this error ERROR: The command 'cvs -Q -f -d :local:/home/user/path/to/cvs/repo/proj co -r1.1.1.2.1 -p -kb scripts/additions/320_str.20070501-001101.sql' failed with exit status=-9 and no output.

然后我建议

您可以自己尝试该命令以查看 ,v 文件是否已损坏。存储的sql文件是一个文本文件,但是.sq,v文件是RCS格式的,你无法通过检查来判断它是否损坏。但是你可以很容易地

  • 运行 cvs2git 说的 cvs 命令失败,看看当 运行 手动时它是否对你失败。或者
  • 您可以制作该存储库的副本,删除该文件,然后尝试 cvs2git。 如果那个特定文件确实是一个问题,那也会告诉你。

Thanks @mort, that made wonders. If it is an answer I would accept this solution. The issue is just on that file. I didn't investigate the issue but just deleted and carried on

感谢@Mort,我能够解决问题并成功将 CVS 导入 GIT (BitBucket)。帮助这里的任何人是确切的步骤。这适用于 Centos 8。

  1. 复制需要迁移的cvs repo

    scp -r cvs_repo_server:/path/to/cvs/repo/project1 ./

  2. 创建 CVSROOT 以满足 cvs2git 工具

    mkdir project1/CVSROOT

  3. 删除失败的有问题的文件。你如何找到 运行宁 cvs2git 在下面的步骤中。这是反复试验

    rm

  4. 克隆和运行 cvs2git

    git 克隆 https://github.com/mhagger/cvs2svn.git

    cd cvs2svn

    ./cvs2git --blobfile=blob.dat --dumpfile=dump.dat --username=cvs2git --fallback-encoding utf-8 。 ./project1/

    CD ..

  5. 在 bitbucket 中创建 repo,然后克隆空 repo

    git 克隆 bitbucket/url/mig_project1

  6. cd 到克隆的 repo

    cd mig_project1

  7. 导入git并推送

    cat ../cvs2svn/blob.dat ../cvs2svn/dump.dat | git 快速导入

    git 推 --all

    git 推 --tags