I've been mirroring Project Wonder's CVS with github, and unfortunately git-cvsimport has been a real problem. If I try to run it directly on the repository, I get:
git-cvsimport: fatal: cvsps reported error 11
... which is really helpful. Well it turns out that you can run cvsps outside of git-cvsimport and get this all to work. Here's roughly what you need to do:
export CVSROOT=[your cvsroot] cvsps -x --norc -u -A [your cvsmodule] > /tmp/cvsps.out cd /path/to/your/git/repos git-cvsimport -o git_cvs_head_branch_name -P /tmp/cvsps.out [your cvsmodule]So in my case, I do:
export CVSROOT=/local/wonder/cvs cvsps -x --norc -u -A Wonder > /tmp/cvsps.out cd /local/wonder/git git-cvsimport -o Wonder_HEAD_Branch -P /tmp/cvsps.out Wonder
The key here is that we run cvsps manually, saving its output, then run git-cvsimport with a -P passing it the name of the cvsps output. This allows us to manually ignore cvsps errors rather than have them kill git-cvsimport.
Note that by default gitcvs-import will use "master" as your head branch, which can cause problems with later merges. It's best to keep all CVS branches in their own git branch and don't touch them except with git-cvsimport.
1 comment:
Thanks for this one, I really couldn't get cvsps to work after reading the man page. This post (together with the git-cvsimport source) gave me the clue I needed.
Post a Comment