Goodbye CVS

Today I finally shut down my old CVS repo. After nearly 15 years of operation, it's time to move on. Few bites, worth saving for a sake of archeology, are converted and imported into my local playground Git repo. Links are preserved, as far as possible.

CVS was some cumbersome to maintain in a chrooted environment. Related tools weren't updated for years. And since I've switched from C to Go, I've barely used it anymore.

It's time to catch up with the progress. Goodbye CVS.

Conversion process

It was quite straightforward. I've used cvs2svn with a custom options file for it.

The whole process sofar: update few bits in cvs2git.options, as described here (it boils down to committer name mapping and CVSROOT repository location). Then:

cvs2git --options=cvs2git.options
mkdir newrepo && cd newrepo
git init && cat ../newrepo-tmp/git-{blob,dump}.dat | git fast-import
git checkout && git gc
git add origin git@dim13.org:newrepo.git
git push --all origin

This way all your tags and branches stay preserved. Repeat until all your repos are converted.

By Dimitri Sokolyuk
Related articles