Code at work is stored in #SVN, with a highly irregular structure - no standard trunk/tags/branches, a lot of externals, a bespoke tool to do sparse checkouts. Nobody I spoke about it to likes it, but apparently it's just too entrenched into various workflows to easily migrate away from.
A lot of devs prefer #git over svn though. But because of the weird repo structure, they can't just use git svn
. So the next best thing they (and I) came to is to just put it all in a local git repo - including the .svn
folder. This adds a lot of overhead, sure, but it's the simplest way to get the amenities you're used to.
I came a little bit further, though. I have tried to write a script that would import a (subset of) svn history into this local git repo - by essentially parsing svn log --xml
, then doing svn up && git commit
on every revision, setting up authors, dates and messages nicely. It is slow, of course, but I ran it overnight. Feeling quite proud of myself now, being able to, e.g. use git blame
fully locally.
Probably won't share the script here though, since it's tied to our specific repo quirks.