为什么“git cvsimport”只返回一个空的Git仓库?

时间:2012-01-27 02:26:02

标签: git cvs

我正在使用Mac OS X 10.7.2,使用Homebrew,cvsps 2.2b1和git-cvsimport安装Git 1.7.8.2。

我曾经使用过一个网站项目的Subversion存储库,我已成功转换为Git存储库。虽然我没有参与该项目,但是一位无法访问和使用Subversion但有最新结账的同事将他的更改保存在CVS存储库中。

我想转换他的CVS提交并将其应用于我的Git仓库。但我没有CVS的经验;因为我之前只与Subversion和Git合作过。

目前,我只想将他的CVS回购转换成Git。 (也许我稍后会使用git merge或git rebase将转换后的Subversion和CVS存储库合并为一个Git存储库。但我还没有达到这一点。)

他向我发送了他的CVS“回购”的压缩tarball。当我解开它时,我得到一个与项目名称相匹配的目录,其中的文件与项目的每个文件匹配,但每个名称末尾都有一个“,v”用于版本控制。我假设我得到的tarball只是CVS存储库的一个模块,我认为应该足够了。

这是我的文件结构:

  • 〜/站点/ CVSROOT /
    • 网站名称/
      • 的.cvsignore,V
      • 的index.html,V
      • 图像/
      • ...

我用来将CVS模块转换为Git仓库的命令如下:

$ cd ~/Sites
$ rm -fr sitename # Make way for new git repo of same name.
$ git cvsimport -v -d ~/Sites -C sitename sitename

这是它输出的内容:

Initialized empty Git repository in /Users/remi/Sites/sitename/.git/
Running cvsps...
cvs_direct initialized to CVSROOT /Users/remi/Sites
cvs rlog: Logging sitename
cvs rlog: Logging sitename/.git
cvs rlog: Logging sitename/.git/hooks
cvs rlog: Logging sitename/.git/info
cvs rlog: Logging sitename/.git/objects
cvs rlog: Logging sitename/.git/objects/info
cvs rlog: Logging sitename/.git/objects/pack
cvs rlog: Logging sitename/.git/refs
cvs rlog: Logging sitename/.git/refs/heads
cvs rlog: Logging sitename/.git/refs/tags
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

当我进入新Git仓库的目录时,执行git log会产生fatal: bad default revision 'HEAD'

有什么我想念的吗?我的同事的CVS回购服务器是否需要其他文件?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我建议使用此http://cvs2svn.tigris.org/cvs2git.html。不支持cvsps - 不使用分支机构,只是普通的老不起作用恕我直言