I work with *huge* CVS repository on daily basis and must tell you it’s no fun. No fun at all. So couple of weeks ago I decided to create a git mirror. Preliminary research yielded two tools: cvs2git and git-cvsimport. cvs2git required filesystem access to full repository, so it was out and that left me with git-cvsimport. git-cvsimport uses cvsps inorder to It bailed out on me having exhausted 32-bit virtual space with as much as “Segmentation fault” message. 64-bit OS had been installed for cvsimport purpose but after couple of hours of high HDD activity the result was some cryptic error message and cvsimport refused to go further.
At that point I decided that it shouldn’t be that hard to parse “cvs rlog” output and generate patchsets for cvsimport. It’s just plain text file(though relatively large) after all. So I went for it. Few days later script was ready. After some testing and cosmetic improvements it was good enough for public: repository on github.