Code Vigorous

Dustin J. Mitchell

A future for Svnmerge?

17 Jan 2010

Svnmerge has always been the kid brother of Subversion. It’s in the project’s contrib directory, and is thus unversioned. Since it’s a single Python script, users just download it directly from the repository. In the last year, the script has only seen a few non-trivial commits, and the mailing list has been almost silent.

There are some simple reasons for decline. First, Subversion itself, in version 1.5, has adopted some of the functionality of Svnmerge. In particular, svn now uses properties (svn:mergeinfo) to track the revisions that have and have not been merged into a particular branch. There are some limitations, of course. Most obviously, a branch can only be “reintegrated” into trunk once, which is not the workflow of many Svnmerge users. Also, to my knowledge, Subversion cannot merge between repositories, while Svnmerge can.

Second, Git, Mercurial, and other DVCS’s now provide strong support for merge-heavy workflows. Both tools also have excellent “gateways” to Subversion. For example, Amanda’s Github repository tracks the Subversion repository using some simple shell scripts.

Between these two forces, I think that much of the audience for Svnmerge has disappeared. Those left, sadly, will see even less support.