Gitflow hotfix backmerge into release when release exists.

We where testing the Gitflow feature inside of Sourcetree yesterday and we discovered something strange.

When we finished a hotfix branch while having a release branch active, the back-merge would only merge the hotfix to master and develop.

That seems strange to us. It would make a lot of sense to merge the hotfix to master and the active release branch. The release branch would eventually merge back into the develop.

We would like to know if this is a known issue and if you have a workaround for this?

 

3 answers

This widget could not be displayed.

Hi.

That is actually the standard git-flow workflow, see the section on Hotfix in https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

Hi Micheal,

 

It still seems strange to not merge the hotfix intro a release branch.

But what is the best practice in this kind of situation?

I suspect you should cancel the Release branch and start that again.

This widget could not be displayed.

edit: already answered above

This widget could not be displayed.

The standard git-flow workflow suggests merging the hotfix into an active release branch:

"As soon as the fix is complete, it should be merged into both master and develop (or the current release branch), and master should be tagged with an updated version number."

https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

The article that spawned git-flow is more explicit:

"The one exception to the rule here is that, when a release branch currently exists, the hotfix changes need to be merged into that release branch, instead of develop. Back-merging the bugfix into the release branch will eventually result in the bugfix being merged into develop too, when the release branch is finished. (If work in develop immediately requires this bugfix and cannot wait for the release branch to be finished, you may safely merge the bugfix into develop now already as well.)

http://nvie.com/posts/a-successful-git-branching-model/

I just made a quick test with git-flow outside of SourceTree and I find the same as Thijs: standard git-flow commands ignore the release branch.

Unless there are ways of telling git-flow about the release branch, I think I would just issue direct git commands to merge the hotfix in this case:

$ git checkout master
$ git merge --no-ff hotfix/1.1.1
$ git tag 1.1.1
$ git checkout release/1.2.0
$ git merge --no-ff hotfix/1.1.1
$ git branch -d hotix/1.1.1

Obviously merge conflicts are possible when merging the hotfix branch into the release branch and would need to be dealt with. As you suggest, the hotfix naturally flows back into develop when the release branch is merged.

EDIT: The standard git-flow doesn't have an option to merge into the release branch so I think the only option is to do it manually (or abandon the release branch, as suggested above).

https://github.com/nvie/gitflow/blob/develop/git-flow-hotfix

Suggest an answer

Log in or Sign up to answer
Community showcase
Published May 30, 2018 in Sourcetree

Tip from the team: configuring Git or Mercurial in Sourcetree

Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...

860 views 2 3
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you