【发布时间】: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 - 不适用于分支,只是普通旧的不起作用恕我直言
-
我稍后会回答更多细节,但目前,您的建议有效。谢谢!
-
酷 - 我将其移至答案。