On 5/21/06, Jim Meyering <jim@xxxxxxxxxxxx> wrote:
Can anyone point me at code to mirror a git repository to cvs?
Ive thought a couple of times about writing an exporter that would replay things into a true CVS repo, but it's truly not worth it. We've already got git-cvsserver that does all that -- better for me to focus on that codebase.
I've experimented with git-cvsexportcommit, and found a few bugs (it couldn't handle simple things, like adding a file in a new directory -- fixed that, along with a few other minor problems), adding an empty file in git still gets a patch application error on the cvs side, but I can live with that for now. More seriously, making a change on a git branch mistakenly tries to apply the delta on the cvs trunk.
cvsexportcommit is clearly for manual usage, not for automagic usage. It is a bit rough, (and I'd like to see your patches to it!) but it wants to be driven by a smarter script to, for instance, know what branch you want things in.
Why am I interested? I want to switch the development of GNU coreutils from cvs to git. I would also like to continue making the repository available via cvs, for the sake of continuity. At worst, I can always cut the CVS cord, but that's a last resort.
git-cvsserver is the word. It currently tracks the git repo itself pretty well (perfectly, AFAICS) and it also tracks a git tree that is actually imported daily from CVS -- doing CVSrepo ->cvsimport -> GIT -> cvsserver -> CVS checkout git-cvsserver works great for anon cvs access (does pserver) and TortoiseCVS and cli cvs work great with it. Eclipse works well, but it has been quite hard to get 'right'. Optionally, it can support users with commit rights via ssh. It does track git 'heads' but they don't show up as branches, they show up as different modules. So you to get a checkout of the master branch, you do: cvs -d pserver:anonymouys@xxxxxxx:/var/foo.git co master hope that helps! martin - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html