The last time I introduced the Fisheye Release Report, we focused on how it can show you which Jira issues are included in your new release based on the source, rather than based on what your developers enter manually into Jira. Furthermore, the Release Report summarizes important information about those Jira issues, such as their Fix Versions and relevant code reviews. We find these features alone make the plugin really useful, but we have one other high value use for the Release Report that might interest you.

When the Fisheye and Crucible team approaches a release, many of our developers want to merge in their feature branches or bug fixes. However, we must merge all of these changes carefully to maintain quality in our stable release branch. The Release Report allows us to check out individual branches before they are merged in, inspect the associated code reviews and Jira issues, and check the planned Fix Version to make sure that these branches were actually scheduled for this release. The report can also save you from writing scripts to discover information about these branches.

Using the Release Branch Report

To use the Release Report to gather information on a branch that we potentially want to merge, open up the commit graph and use the “Select Branches…” button to display the target and feature branch you want to merge (in the example below, our target branch is master, while our feature branch is auto-register-listeners). Close the dialog, and using the “Release Report” highlighter: select the head of the target branch and the head of the feature branch you are thinking of merging. The graph will highlight the commits which will be merged in the next release (Note: in Mercurial, there could be commits on other branches that are not displayed – these are shown in the Release Report itself).

Click on the “Release Report” button to see which commits you will be merging.

With the Release Report, we can see the committer(s) for the branch and the state of relevant code reviews, all at a glance. Although there are no Jira issues linked to this branch, this information is also available with the Release Report.

Getting Some Command-Line Fu

For those advanced users, you can actually launch the Release Report straight from the command line. We’ll show you how in this quick example.

In this example, here is a list of branches

[cc lang=’bash’ ]
$ hg branches -q
2.7
2.7-CRUC-6057-abandon-review-redirect-fix
fsh-5522-branch-madness
default
2.7.8-CRC-3412-extra-debugging-around-mail-errors
2.7.10-FSH-7851-debugging
2.7-security
2.6
2.5-Studio
2.7.7-FSH-7611-backport-p4-bad-job-name-fix
CRUC-6009-add-more-detail-to-ReviewUpdatedEvents
[/cc]

Say you’d like to know the following:

  • What is this fsh-5522-branch-madness branch about?
  • Who is working on this branch?
  • Should it be included in the next release?
  • Is this branch ready for release?

The Release Report can answer all of these questions! But we would need to select all of these branches one-by-one in the commit graph, and that can be time consuming. To solve this problem, we can write ourselves a shell script to do the hard work for us.

First, define the root of the URL to the Release Report on your Fisheye server. Next, define some generic shell functions to build the URLs for different branches and repositories (the functions below are written for bash).

[cc lang=’bash’ ]
FISHEYE_RR_ROOT=”https://extranet.atlassian.com/crucible/plugins/servlet/revset-report”
function release-report-hg-url ()
{
# $1: repository
# $2: target branch
# $3 branch to merge
echo “${FISHEYE_RR_ROOT}/$1?r1=`hg log -r $2 –template ‘{node}’`&r2=`hg log –template ‘{node}’ -r $3`”
}
function release-report-git-url ()
{
# $1: repository
# $2: target branch
# $3 branch to merge
echo “${FISHEYE_RR_ROOT}/$1?r1=`git show-ref $2 -s | head -1`&r2=`git show-ref $3 -s | head -1`”
}
[/cc]

After writing this script, we can write OS specific functions for opening these URLs and define some useful helpers for common operations. For help on how to do this, see How to Easily Open Files and URLs from the Command Line. Note that the following examples use Mac OS-X’s open command.

[cc lang=’bash’ ]
function release-report-hg ()
{
open `release-report-hg-url $1 $2 $3`
}
function release-report-git ()
{
open `release-report-git-url $1 $2 $3`
}
# For the FE-hg repository, open the release report for merging the given branch to the 2.7 release branch
function release-report-2.7 ()
{
release-report-hg FE-hg 2.7 $1
}
[/cc]

Now, we can easily type in

[cc lang=’bash’ ]
$ release-report-2.7 fsh-5522-branch-madness[/cc]

And have the Release Report pop up in a browser!

Try It Yourself Today!

Examine all relevant information related to your branches today with the Fisheye/Crucible Release Report. Download it now!

If you haven’t tried Fisheye yet, get your 30-day free trial today!

Fisheye Release Report 2: You Want to Merge What?