I plan to mirror a few CVS repositories to git, keeping the entire process local to savannah. Before now, I've been mirroring gnulib and emacs on my desktop and pushing from the resulting git repo to savannah, but automating that is suboptimal for a few reasons: security, since you have to choose between using a passwordless ssh key (never! for something like) and hard-coding an ssh password into some sort of script (even worse). Plus, it's not as reliable if things are remote: network/desktop problems stop the mirror.
Tools needed: cvs, rsync, cvsps, git (including git-cvsimport, etc.), GNU find+xargs. All but cvsps were already installed. I did apt-get install cvsps to install it in the top-level vserver, but then thought it might be better to do it in the cvs vserver. There, that same command would have pulled in a cvs update, so I didn't do it, and for now, I'll be experimenting from the top-level one instead. [if someone can okay updating /usr/bin/cvs in the cvs vserver, I'll resume working there ] I expect to run a root cron job that su's to nobody. It will maintain an rsync'd copy of each repository in /var/tmp/c2g-mirror, as well as the resulting .git repo. The repo sizes are negligible compared to available space (380GB): The .git repository sizes: 13M gnulib/.git 203M emacs/.git The cvs repositories: 45M /vservers/cvs/sources/gnulib/gnulib 436M /vservers/cvs/sources/emacs/emacs/ Unless someone has a better idea, I'll put the two bourne shell scripts I use in /usr/local/bin. Any objections? If so, now's the time to speak up.