Hey,

On 07-Aug-2014, at 9:22 am, Leo Simons <lsim...@schubergphilis.com> wrote:

> On Aug 7, 2014, at 8:40 AM, Animesh Chaturvedi 
> <animesh.chaturv...@citrix.com> wrote:
>>> (Like most of the internet...) I strongly believe using cherry picks as the 
>>> basic
>>> tool for (release) branch management is one of the worst choices you can
>>> make.
>>>
>>> But. Please. Can. We. Just. Stop. Cherry. Picking!!! :-D [1]
>>>
>> [Animesh] Leo I don't mind moving to merging branches rather than 
>> cherry-picking for technical reasons, but I am not sure cherry-picking is to 
>> blame entirely. Using it all the time caused the pain.
>
> Yes, I completely agree with that! It was a bit tongue-in-cheek, in fact the 
> joke at the [1] reference...
>
>> [1] ... Using 'git cherry-pick' when there are actual cherries
>> to actually pick is fully endorsed by LSD Enterprises LTD.
>> Picking things other than cherries voids warranty. ...
>
> ...tries to make the same point. I really should stop trying to be funny! 
> More seriously,
>
>
> Use distributed version control.
> Commit early and often. Push often enough.
> Strive for idempotent commits.
> Write good commit messages.
> Ask and give review liberally.
> Keep history though rewriting some of it is ok.
> Branch pre-emptively, except when you are sure you don’t need to.
> Rebase when it is safe to do so.
> Merge deliberately to combine branches.
> Stabilize a branch before you merge from it.
> Merge from the more stable onto the less stable branches.
> Pick cherries from a less stable branch you won’t merge.
> Know your tools.
> Know when to break the rules.

Very well said. May I add a solution to the cherry-picking problem, use a 
baseline protocol:

1. Once a release branch is cut out, all the committers and contributors 
“should” only work on release branch only. Only the new feature development and 
its enhancements/bugfixes should continue to land on master directly or merged 
from their respective branches.

2. The RMs or developers keep merging the release branch with fast forward 
only, this way we don’t have to cherry-pick from master to release branch but 
instead master gets all the good stuff from release branch and the release 
branch gets “more attention”.

3. If we somehow can reduce the release cycle timeline/length, the divergence 
will be less causing less conflicts/issues when following 1 and 2 above.

Thoughts?

Regards.

>
>
> happy hacking,
>
>
> Leo
>

Regards,
Rohit Yadav
Software Architect, ShapeBlue
M. +41 779015219 | rohit.ya...@shapeblue.com
Blog: bhaisaab.org | Twitter: @_bhaisaab



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 Infrastructure 
Support<http://shapeblue.com/cloudstack-infrastructure-support/>
CloudStack Bootcamp Training Courses<http://shapeblue.com/cloudstack-training/>

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

Reply via email to