Based on my long-time experience with maintaining and doing release work on 4.3 
and later 4.5, there are many reasons where backporting is needed and forward 
merge won’t work;

1. Due to high codebase changes mostly due to major refactorings, it is not 
possible to simply cherry-pick a commit; backporting many times involved 
writing the fix manually based on the commit diff that I wanted to backport. 
Cherry-picking becomes impossible if anyone has changed package names, 
file/directory paths, removed code etc.

2. Forward merging will also start failing (due to same reason as above) as 
time progress the codebase diverges due to refactoring, new code and any 
design/architectural changes. The other issue with forward merging is that it 
would require merging from the oldest branch to the newest, with time there 
would be several branches (given the monthly pace) between the LTS branch and 
the future master branch. So, in my experience backporting may become necessary.

3. The bugfix author may not send their fix/PR against old branches, as time 
progresses developers won’t care much about the older LTS branch(es). Wrt 
4.3/4.5 at times I had to backport changes myself after failing to get the 
original author send the fix against 4.3/4.5 branch. This is expected of 
developers, as they contribute in our own *free* time and they may not have the 
time, bandwidth or interest in seeing those fixes in older branches.

For example, we’ve 4.7 and 4.8 (upcoming) where forwarding merging will work 
for sometime, but in 14-20 months the developers may not send bugfix/PRs 
against 4.7 and expect future RMs to merge them forward as that would require 
both merge-conflict fixing and testing for all intermediate branches 4.8 to 
4.20 (assuming, monthly releases we’ll at least reach 4.20 in 14-20 months and 
I’m not sure if RMs will have time and dedication to test all 12+ 
releases/branches ). For non-LTS branches, it may not make sense to even have 
those bugfixes.

In my experience (with pseudo LTS branches, 4.3/4.5) and opinion, LTS branches 
are going to diverge wrt master with time but they are going to have a dead-end.

About cherry-picking, the way we’re going git commits/merge at least I’m not 
able to follow the git history at all, it looks like a mess to me. We talk 
about ability to trace commits through branches, but I cannot even follow 
changes in the same branch now (say master). I personally use git diff and git 
log -p to trace changes using differences now (in files or paths/folders). 
Cherry-picking is not bad, if done right (always include the git commit ID from 
where it was picked using -x -s) you can trace it.

Regards.

[ShapeBlue]<http://www.shapeblue.com>
Rohit Yadav
Software Architect      ,       ShapeBlue


d:       | s: +44 203 603 0540<tel:|%20s:%20+44%20203%20603%200540>      |      
m:      +91 8826230892<tel:+91%208826230892>

e:      rohit.ya...@shapeblue.com | t: 
<mailto:rohit.ya...@shapeblue.com%20|%20t:>       |      w:      
www.shapeblue.com<http://www.shapeblue.com>

a:      53 Chandos Place, Covent Garden London WC2N 4HS UK


[cid:image608ca6.png@adf34d27.428e2635]


Shape Blue Ltd is a company incorporated in England & Wales. ShapeBlue Services 
India LLP is a company incorporated in India and is operated under license from 
Shape Blue Ltd. Shape Blue Brasil Consultoria Ltda is a company incorporated in 
Brasil and is operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd 
is a company registered by The Republic of South Africa and is traded under 
license from Shape Blue Ltd. ShapeBlue is a registered trademark.
This email and any attachments to it may be confidential and are intended 
solely for the use of the individual to whom it is addressed. Any views or 
opinions expressed are solely those of the author and do not necessarily 
represent those of Shape Blue Ltd or related companies. If you are not the 
intended recipient of this email, you must neither take any action based upon 
its contents, nor copy or show it to anyone. Please contact the sender if you 
believe you have received this email in error.




Find out more about ShapeBlue and our range of CloudStack related services:
IaaS Cloud Design & Build<http://shapeblue.com/iaas-cloud-design-and-build//> | 
CSForge – rapid IaaS deployment framework<http://shapeblue.com/csforge/>
CloudStack Consulting<http://shapeblue.com/cloudstack-consultancy/> | 
CloudStack Software 
Engineering<http://shapeblue.com/cloudstack-software-engineering/>
CloudStack Infrastructure 
Support<http://shapeblue.com/cloudstack-infrastructure-support/> | CloudStack 
Bootcamp Training Courses<http://shapeblue.com/cloudstack-training/>

Reply via email to