MergeTool – SVN cherry-picker
What it is
MergeTool is a simple JDK 1.6 Swing-based frontend to svn which can
- load a set of tasks from a CSV file that requires at least the fields Id, Status, and Summary,
- can create such a file through the MantisBT SOAP API,
- lets the user select a few of the tasks,
- then searches for Mylyn-style task numbers in commit messages and constructs a merge command out of it.
Needless to say this program serves a very distinct purpose. It's of no use in any of the following cases:
- You're using any other VCS than Subversion (the tool could be extended to cover other tools as well, but see below).
- You're already using feature branches, in which case the amount of cherry-picking needed should be greatly reduced and you don't really need a tool for it. For VCSes like Git, feature branches are usually the standard approach so extending the tool to cover Git would be kind of pointless. For tools like TFS, it may be worthwhile; this depends on your development model.
- You don't use commit messages that contain the task number in some extractable format.
The tool isn't very polished at the moment and doesn't have tons of features, but I've been using it to ease the pain of Subversion merges for over two years now and it's made quite a difference for me.
The MergeTool source code is beerware licensed. Note that third-party JARs used are covered by other licences.
Getting the tool
The tool is available at the following Maven repository:
It is generally not recommendable anymore to get any of the snapshot versions, which might also appear in that repository.Here is a source tarball.
Running the tool
To run the tool, you can:
- build it from the source tarball and execute mvn exec:java
- build it from the source tarball and run it in the IDE, using the main class de.steg0.deskapps.mergetool.MergeTool
- build it from the source tarball, cd to target and execute java -jar mergetool.jar
You can also create a ZIP file for easy redeployment by executing zip mergetool-<version>.zip *.jar in the target folder.
The tool is the most useful if it is configured as external tool in the IDE, with the proper command-line arguments to start up with the config file you need to support the code you're developing. That's how I use it at least.
Last change 2015-11-28 Raimund Steger