In this page

What is "did you mean"?

(since app version 4.3.0)

"Did you mean?" is a unique feature that makes fixing rejected commits faster and less frustrating by giving intelligent tips for the fix. And, it does that right in the context of the rejection!

To understand how it helps, let's see how a typical workflow of fixing a rejected commit looks:

  1. The app rejects your commit because its commit message does not include an issue key, which is in project FOO and which is in the "in-progress" status.
  2. You open Jira in the browser and search for the issues that you're working on in project FOO.
  3. You find the issue that's related to your commit.
  4. You enter the issue key to the commit message, and the app accepts it.

The "did you mean?" feature eliminates the second step by suggesting issues right after to the rejection message. That way you can find the issue quickly and easily without opening Jira at all!

For example, this output shows 3 suggested issues:

remote: ========================================================================
remote:                                REJECTED!
remote: ========================================================================
remote: 1.1 COMMIT [6ecb44a] on [master] Exactly one issue key must be mentioned in the commit message "Guard against the NullPointerException"
remote: ========================================================================
remote: Did you mean one of these issues?
remote: [FOO-82] Crash when submitting the form using Safari
remote: [FOO-27] Keyboard shortcuts
remote: [FOO-11] As a user, I want to choose my own language for the app
remote: ========================================================================

Why is it useful? Not only it can save time and efforts required to search in Jira, it can also save the mental switch from the VCS client to Jira, plus the loss of focus caused by the switch.

Although it is not guaranteed that it will always suggest you the "best" issue, the algorithm is fairly intelligent to give great suggestions most of time. And when it doesn't, just open Jira and search there.

Which issues will be suggested?

The algorithm will suggest those issues which both match the JQL queries in the commit policy and were viewed by the committer user recently. Note that it assumes that the committer actually views (at least once) the issue he's working on, which is probably true in everyone's daily practice. If so, then the issue will be in the top part of the suggestions.

Notes:

  • If you are using Jira Software boards, it is important to know that quickly opening a card in the right-side, limited "Issue Detail View" will not mark the issue as recently viewed! This is a bit counter-intuitive, but this is how Jira works.
    Instead, the issue must be opened in the full "Issue View" screen to be included in the suggestions. (Don't worry, this is what you probably do anyway.)

Configuring "did you mean?"

You can configure the limit (maximum count) of the suggested issues via the Java system property jcp.suggestedIssues.limit. It accepts an integer between 0 and 50, where 0 will effectively disable the feature. The default value is 10.

Although discouraged, disabling suggestions can be useful when team members just blindly choose the first suggested issue, which is not necessarily the right one, thus undermining the traceability of commits. We believe that you should primarily educate them about the importance of choosing the right issue, but disabling suggestion exists as an option.

Modifying the Java system property requires you to restart Jira. For a detailed how-to, please see the Setting properties and options on startup page in the official Jira documentation.

Questions?

Ask us any time.