微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Git one repo 中转换 CVS 原始存储库?

如何解决如何在 Git one repo 中转换 CVS 原始存储库?

我正在尝试将 CVS 现有存储库转换为 Git 存储库。 存储库在“cvs”主目录下有 2 个目录“modules”,例如: 简历/模块_a cvs/module_b

目前,我正在尝试在以下有用页面上学习 SourceForge 的 3 种方法

https://sourceforge.net/p/forge/documentation/CVS/

  1. 我使用的第一种方法是通过 ssh shell 连接并按照使用“cvs2git”的说明进行操作,但在过程结束时,“导入”过程似乎只导入了“module_a”。

  2. 第二种方法是在本地使用“cvs2git”,但目前似乎无法下载该工具作为tarball的源站点: 我尝试从本网站提供的网址:https://www.mcs.anl.gov/~jacob/cvs2svn/cvs2git.html(不可用站点http://cvs2svn.tigris.org/servlets/ProjectDocumentList

所以我尝试从 SF.NET Shell 下载,但是手动重新组装所有 deps 很痛苦。 此外,该工具似乎可以从 Ubuntu 软件包中获得,但现在 Ububtu WSL 通知我该工具不存在:

    sudo apt-get install cvs2svn
    
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Package cvs2svn is not available,but is referred to by another package.
    This may mean that the package is missing,has been obsoleted,or
    is only available from another source
    
    E: Package 'cvs2svn' has no installation candidate
  1. 所以我尝试使用“git cvsimport”:
    git cvsimport -v -a -k -d ~/cvs -C ~/new-git -A ~/authors.txt MODULE

但是这个工具在处理了它声称的所有 CVS 源之后

cvs rlog: Logging module_a/src/main/resources/res
DONE; creating master branch
fatal: refs/heads/origin: not a valid SHA1
fatal: master: not a valid SHA1
fatal: You are on a branch yet to be born
checkout Failed: 32768

那么,请您帮我找到最实用的方法在本地转换旧的 CVS 存储库吗? 提前致谢。

编辑:在案例 1 中,我按照上面页面链接中的说明进行操作:

ssh -t USERNAME@shell.sf.net create

mkdir cvs2git-tmp 
cd cvs2git-tmp 
cvs2git --blobfile=blob.dat
--dumpfile=dump.dat \
    --username=FIXME --default-eol=native \
    --encoding=utf8 --encoding=latin1 --fallback-encoding=ascii \
    /home/classic/cvs/PROJECT

cat blob.dat dump.dat | git --git-dir=/home/git/p/PROJECT/code.git fast-import 
rm blob.dat dump.dat

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。