At our company we are moving from SvN to Git (yeah, better late than never). With that, we also try to streamline the versioning process. To do that I found an interesting article: Successful Git Branching Model by Vincent Driessen.
As far as I can read from the article, developer assumes linear releases. To be clear:
v1.0.0 --> v1.0.1 --> v1.0.2 --> v1.1.0 --> v1.1.1 etc
Support for older releases is not mentioned. For example: we support up to three major versions back because some clients do not want to upgrade. So imagine we have the following versions:
v7.0.0 --> v8.0.0 --> v9.0.0 --> v10.0.0
When there is a critical bug found in v8.0.0
after the release of v9.0.0
, we checkout tag v8.0.0
, fix bug, and merge it back into develop
and master
branches. Merge into master
gets tag v8.0.1
.
Seems to me somehow weird because of two things:
master
timeline will look like v7.0.0 --> v8.0.0 --> v9.0.0 --> v8.0.1 --> v10.0.0
. I'm totally aware it's possible, but is it also acceptable?hotfix
to master
(and master
is at that moment at v9.0.0
) and tag it with v8.0.1
, do I also get features introduced between v8.0.0
and v9.0.0
?Thanks in advance!
To me, the tag v8.0.1
should be the commit before the merge master
. If you want to patch the new versions, then you merge the other tags there as well.
v8.0.0 --> v9.0.0 --> v10.0.0
\ \ \
v8.0.1 --> v9.0.1 --> v10.0.1/master
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With