-1

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 的任何解决方案?

4

2 回答 2

1

在原始问题中基于上述评论交换发布解决方案

我建议尝试cvs2git

@RamananT 说

我试过了,不幸的是 cvs2git 也失败了,这个错误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'失败了,退出状态=-9,没有输出。

然后我建议

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

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

谢谢@mort,这创造了奇迹。如果这是一个答案,我会接受这个解决方案。问题就在那个文件上。我没有调查这个问题,只是删除并继续

于 2021-12-16T14:38:47.827 回答
0

感谢@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 <project1/path/to/cvs/problematic/file,v>

  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/

    光盘..

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

    git clone bitbucket/url/mig_project1

  6. cd 到克隆的 repo

    cd mig_project1

  7. 导入 git 并推送

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

    git push --all

    git push --标签

于 2021-12-16T23:51:18.210 回答