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/>