My development team is migrating from SVN to Mercurial. Having researched DVCS best practices, it has been suggested that we develop against feature branches of the repo mainline, test them separately, then cherry-pick the features we want in each release, before merging those selected branches into the mainline and eventually releasing it.
Question: What I'm looking for is recommendations for some sort of software tool that will make my role of "software release manager" easier, in that it will allow me to control (cherry-pick) which branches (features, bug fixes, etc) are merged (using Git, or Mercurial) into which software releases (in each environment), and be able to produce the binary deployment artefact.
Our applications are mostly Java Web apps, with a handful of Java Applications, and the projects built using Maven (v2).
I've looked around for release management tools, but nothing really fits the bill.
NB: Not all changes are released as soon as they are completed and pass QA - some are to be released at a later date, as part of a themed release
Things dismissed so far (based on recommendations in similar questions, in other SE threads):
- Trac (seems to be just PM type stuff, which we already have with the Atlassian OnDemand offering)
- Jenkins (plus other CI tools) - am looking for something to manage my releases, rather than a CI tool (we have used Jenkins in the past).
- Mercurial Patch-Queues - I may well need this, but was looking at some sort of "nicer" interface to help me manage it.
- ERP offerings - TBH, I didnt look too much into this option, as my initial feeling was that they were too heavy-weight.
- BuildMaster, by Inedo - This was the closest match, by far, but was not quite suitable due to its lack of VCS branch picking/merging functionality. I would say however that this is a very nice piece of software, and would recommend it, if it fits your use-case, and is sensibly priced, even for Enterprise use.
Am currently evaluating the following tools:
- Bitbucket Feature Branch management (since we use Bitbucket for our projects, seems prudent to evaluate their approach)
Since DVCS is new to us, these things may have been dismissed prematurely, so feel free to re-educate me. :)