我正在尝试导入一个在cvs中长达数年的项目。它有一些分支用于补丁发布,标签和头部。 这是我正在使用的命令:
git cvsimport -r cvs -k -d :pserver:<USERNAME>@cvs:/home/cvsroot <MODULNAME>
几周前它完美无缺。几天前,为当前版本创建了一个分支,人们仍然在这个分支中工作,而其他人已经在为下一个里程碑工作。这个分支稍后将合并到头部。
此过程暂时失败,并在下面显示以下消息:
fatal: Needed a single revision
fatal: Can merge only exactly one commit into empty head
Could not merge master into the current branch.
可能是什么原因?我怎么处理呢?
答案 0 :(得分:1)
我发现了一种解决方法,即不导入可追溯到2006年的整个历史记录。 这是我的程序:
以下是涉及的命令:
mkdir project.cvs
mkdir project.git
cd project.git
git init
touch test
git add test
git commit -m "initial" --date="2010-01-01 00:00:00"
cd ../project.cvs
git cvsimport -o master -C ../project.git -k -d :pserver:<USERNAME>@cvs:/home/cvsroot <MODULENAME>
在我的情况下花了一段时间,但随着我回到git repo,自2010年以来的历史可用。
答案 1 :(得分:0)
我发现这个有用:
$ cvs -d :pserver:anonymous@example.org:/path/to/cvsroot login
$ git-cvsimport -v -a -i -k -d pserver:anonymous@example.org:/path/to/cvsroot -C <git_repository> <cvs_module>
命令行参数是:
-v: verbose; report a lot of information about what's going on
-a: import all commits, not just recent ones
-i: import-only. don't mess with working directory
-k: 'kill keywords': no CVS keyword expansion (e.g. $Date$)
-d: root of cvs archive (you could also set CVSROOT if you really wanted to)