I haven’t announced a reposurgeon release on the blog in some time because recent releases have mostly been routine stuff and bugfixes. But today we have a feature that many will find interesting: reposurgeon can now read BitKeeper repositories. This is its first new version-control system since Monotone was added in mid-2015.
Those of you who remember the BitKeeper flap of 2005 might assume some fearsome magic was required, but no. BitKeeper has gone open source and now has a “bk fast-export” subcommand, so adding read-side support was pretty trivial. In theory the write-side support ought to work – there’s also a “bk fast-import” that reposurgeon uses – but the importer does not work well. It doesn’t seem to handle tag declarations, and I have core-dumped it during basic testing. I expect this will be fixed eventually; BitMover has a business incentive to make imports easy, after all.
While reposurgeon has your attention, I guess I should mention another revent development. The svncutter tool that I wrote back around 2009 is back, as “repocutter”, and now part of the reposurgeon distribution with improved documentation. There are some cases of Subversion repositories holding multiple projects that it turns out are better handled by slicing them apart with repocutter than by trying to do the entire dissection in reposurgeon.
Yes, there are still some pending bugs in weird Subversion cases. I decided to ship a release anyway, deferring those, because read support for BitKeeper seemed important enough. I believe that makes reposurgeon’s coverage of Unix-hosted version-control systems about as complete as is technically possible.