Skip to:
Advantages of GCA:
we may find commits that are not merged to higher branches
Disadvantages of GCA:
for every bugfix/feature we need to create 3 GCA-based branches (8.0, 8.4, trunk which sometimes are outdated)
8.0
8.4
trunk
we are not allowed to use Squash and merge option from GitHub as it changes a commit hash
Squash and merge
we need to do null-merges from 8.0 to 8.4 and from 8.4 to trunk after each set of quarterly releases
there are conflict if upstream didn't follow GCA between e.g. mysql-8.0.(x-1) and mysql-8.0.x (we did part1 and part2 in the past)
mysql-8.0.(x-1)
mysql-8.0.x
part1
part2
git commit history in trunk for every bugfix/feature is similar to:
instead of a single commit e.g.
above 3 commits cause more conflicts to solve in linear branches
null-merges inherit some conflicts (e.g. conflicts solved commit) from lower branches
conflicts solved
I asked ChatGPT to write a script that checks
and finds commits not available in all 3 branches using PS-xxxx numbers in commit titles.The output looks good:
This one was not detected because of 2 numbers: PS-9378: Backport PS-9302 ...
PS-9378: Backport PS-9302 ...
Advantages of GCA:
we may find commits that are not merged to higher branches
Disadvantages of GCA:
for every bugfix/feature we need to create 3 GCA-based branches (
8.0
,8.4
,trunk
which sometimes are outdated)we are not allowed to use
Squash and merge
option from GitHub as it changes a commit hashwe need to do null-merges from
8.0
to8.4
and from8.4
totrunk
after each set of quarterly releasesthere are conflict if upstream didn't follow GCA between e.g.
mysql-8.0.(x-1)
andmysql-8.0.x
(we didpart1
andpart2
in the past)git commit history in
trunk
for every bugfix/feature is similar to:instead of a single commit e.g.
above 3 commits cause more conflicts to solve in linear branches
null-merges inherit some conflicts (e.g.
conflicts solved
commit) from lower branches