Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Gitflow hotfix backmerge into release when release exists.

Thijs Kuperus January 25, 2018

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

3 votes
Richard Senior February 21, 2018

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

0 votes
Mike Corsaro
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 26, 2018

edit: already answered above

0 votes
minnsey
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 26, 2018

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

Thijs Kuperus February 6, 2018

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?

minnsey
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
February 12, 2018

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

Like # people like this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events