Somebody said “Release early, release often.” once…and, just a day after reposurgeon 1.5, reposurgeon 1.6 is out, with a bug fix and a tasty new feature.
The bug fix should prevent Python 3.2 from blowing up on the code. More significant is that I found a way to eliminate a fiddly step in my migration guide.
git-svn creates a local repository that is arranged for use as a live gateway to the remote Subversion repo. So it preserves information about the mapping between git commits and Subversion commits. But it also keeps all the branches as remotes, not what you want for a fully-converted local git repo.
Because of this, there are at least two programs named svn2git floating around that are wrappers around git-svn, existing mainly to move those branches. I give directions for doing this by hand, but it’s an error-prone step that humans really shouldn’t do.
Now they don’t have to. reposurgeon’s 1.6 gitsvnparse command – which you’d run in this situation anyway to build the map of Subversion commits – does it automatically. This is safe, because the operation is information-preserving and idempotent.
In a future release I’ll probably do something about converting the local lightweight tags this produces to real tag objects.