Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does git flow handle hotfix to older release or point release of older release

Tags:

git

git-flow

How does git flow handle a hotfix after master has move far beyond that release?

Scenario

  1. Work for 1.0 performed on develop, stabilized on releases/v1.0 release branch and pushed to master in fast-forward merge with tag v1.0 pointing to tip of master and tip of stabilization branch
  2. Releases 1.1 - 3.2 take place in much the same fashion.
  3. We need to hotfix a bug in 1.0

    • branch from v1.0 tag
    • perform fix
    • merge to where?

Master is far in the future and any merge wouldn't be a fast forward and for fun, let's say would conflict.

Would I merge to release stabilization branch and make new tag? Is that what subsequent hotfixes would use as their starting point?

Git Flow Example

like image 521
Peter Kahn Avatar asked May 03 '16 17:05

Peter Kahn


People also ask

What is git hotfix flow?

Maintenance or “hotfix” branches are used to quickly patch production releases. Hotfix branches are a lot like release branches and feature branches except they're based on main instead of develop . This is the only branch that should fork directly off of main .

How does git flow work?

The Gitflow Workflow defines a strict branching model designed around the project release. This workflow doesn't add any new concepts or commands beyond what's required for the Feature Branch Workflow. Instead, it assigns very specific roles to different branches and defines how and when they should interact.

What is the purpose of release branch in git?

The release branch helps isolate the development of an upcoming version and the current release. The release branch's lifetime ends when a particular version of a project is released. Once this branch merges into the develop and main branches, it can be deleted.

Why is git flow important?

Git Flow Workflow simplifies parallel development because it isolates the new development from the released project. You can work on any project version. The new development is done in feature branches so it is merged back when the developer is satisfied with the code.


1 Answers

nvie’s section on hotfix branches explains these are…

… very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned.

So, they are meant to be done on the top of the latest master version, when current stuff in develop isn't ready for the normal release cycle.

What you want here for patching an older version is the concept of support branches, which was discussed a long, long time ago after the initial git flow past was publish but, afaik, never been throughly documented.

The gitflow-avh tool does seem to support them well, so you might want to explore it in a test repo:

  • Reference: git flow support · petervanderdoes/gitflow-avh Wiki

I did find some posts with “information” on support branches but wasn’t too happy with their explanations… given the lack of information about them, i’ll link them anyway:

  • Getting Started – Git-Flow | Some thoughts, ideas and fun!!!
  • GitFlow Examples - GitVersion
like image 182
Hugo Ferreira Avatar answered Sep 20 '22 04:09

Hugo Ferreira