【问题标题】:Why "git cvsimport" only returns an empty Git repo?为什么“git cvsimport”只返回一个空的 Git 存储库?
【发布时间】:2012-01-27 02:26:02
【问题描述】:

我正在使用 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“repo”的压缩 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 存储库服务器提供的其他文件吗?

提前感谢您的帮助!

【问题讨论】:

  • 我建议使用这个 cvs2svn.tigris.org/cvs2git.html 不支持 cvsps - 不适用于分支,只是普通旧的不起作用恕我直言
  • 我稍后会回答更多细节,但目前,您的建议有效。谢谢!
  • 酷 - 我将其移至答案。

标签: git cvs


【解决方案1】:

我建议使用这个http://cvs2svn.tigris.org/cvs2git.html。不支持 cvsps - 不适用于分支,只是普通的旧不起作用恕我直言

【讨论】:

  • 感谢 Adrian Cornish 对我的问题的评论。当我遇到缺少 Python 数据库库的问题时,我放弃了安装 cvs2git。但是在阅读了您的建议后,我冒着安装的痛苦,并且效果很好。根据下面链接页面上的说明,我能够创建一个新的 Git 存储库,然后使用“git cherry-pick first-commit-id-in-cvs-after-”将提交与从 Subversion 转换的旧 Git 存储库合并last-in-svn..last-commit-id-in-cvs”。 cvs2svn.tigris.org/cvs2git.html
  • 很高兴它帮助了你 Remino
猜你喜欢
  • 2010-10-16
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 2015-09-14
相关资源
最近更新 更多