Any other suggestions/objections/comments??
Can we discuss this in detail and agree to a process??


~Rajani



On 02-Jun-2014, at 9:32 am, Rajani Karuturi <rajani.karut...@citrix.com> wrote:

> Yes as mike said, if its a one-off case we can do a empty merge(merge -s 
> ours) for it and git will assume its merged but will not bring in any changes.
> 
> If the branches diverged a lot, for example after a major rewrite, we could 
> stop merging to that branch and above and make the fix manually.
> 
> 
> ~Rajani
> 
> 
> 
> On 30-May-2014, at 11:26 pm, Mike Tutkowski <mike.tutkow...@solidfire.com> 
> wrote:
> 
>> Yep, that's what I was referring to in that a particular fix for an old
>> release may not apply to newer versions. That does happen.
>> 
>> We used to mark those as "don't need to merge to branch x" in SVN and then
>> you handed it however made sense on the applicable branch(es).
>> 
>> 
>> On Fri, May 30, 2014 at 11:53 AM, Stephen Turner <stephen.tur...@citrix.com>
>> wrote:
>> 
>>> What happens if a fix isn't relevant for newer versions, or has to be
>>> rewritten for newer versions because the code has changed? Don't the
>>> branches diverge and you end up cherry-picking after that?
>>> 
>>> --
>>> Stephen Turner
>>> 
>>> 
>>> -----Original Message-----
>>> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>>> Sent: 30 May 2014 18:48
>>> To: dev@cloudstack.apache.org
>>> Subject: Re: [PROPOSAL] git workflow
>>> 
>>> I think this flow is something we should seriously consider.
>>> 
>>> I find cherry picking from branch to branch to be error prone in that it's
>>> easy for someone to forget to cherry pick to all applicable branches and
>>> you don't have any easy way to see the cherry picks are related.
>>> 
>>> When I worked at HP, we had automated tools check to see if you checked a
>>> fix into a prior release, but not later releases. In such a situation, you
>>> either 1) forgot to perform the check-in or 2) the check-in was no longer
>>> applicable in the later release(s), so you needed to mark it as
>>> un-necessary (SVN supported this ability...not sure about Git).
>>> 
>>> 
>>> On Fri, May 30, 2014 at 10:49 AM, Rajani Karuturi <
>>> rajani.karut...@citrix.com> wrote:
>>> 
>>>> Hi all,
>>>> 
>>>> 
>>>> 
>>>> Our current git workflow is confusing with the *forward branches and
>>>> cherry-picking. Its hard to track on what all releases the commit has
>>>> gone into unless I do some git log greping. Also, as a contributor, I
>>>> endup creating patches for each branch as it doesn’t cleanly apply on
>>>> different branches.
>>>> 
>>>> 
>>>> 
>>>> I think we should have some guidelines. Here is what I propose.
>>>> 
>>>> 
>>>> 
>>>> 1.  There should be branch for every major release(ex: 4.3.x, 4.4.x,
>>>> 5.0.x,5.1.x) and the minor releases should be tagged accordingly on
>>>> the respective branches.
>>>> 2.  The branch naming convention is to be followed. Many branches
>>>> with 4.3, 4.3.0, 4.3.1 etc. is confusing
>>>> 3.  Cherry-picking should be avoided. In git, when we cherry-pick,
>>>> we have two physically distinct commits for the same change or fix and
>>>> is difficult to track unless you do cherry-pick -x
>>>> 4.  There should always be a continous flow from release branches to
>>>> master. This doesn’t mean cherry-picking. They should be merged(either
>>>> ff or no-ff) which retains the commit ids and easily trackable with
>>>> git branch --contains
>>>>    *   Every bug fix should always flow from minimal release uptill
>>>> master. A bug isnt fixed until the fix reaches master.
>>>>    *   For ex. A bug 4.2.1 should be committed to
>>>> 4.2.x->4.3.x->4.4.x->master
>>>>    *   If someone forgets to do the merge, the next time a new commit
>>> is
>>>> done this will also get merged.
>>>> 5.  There should always be a continuous flow from master to feature
>>>> branches. Meaning all feature branch owners should proactively take
>>>> any new commits from master by doing a merge from master
>>>> 6.  The commits from feature branch will make to master on code
>>>> complete through a merge.
>>>> 7.  There should never be a merge from master to release branches
>>>> 8.  Every commit in LTS branch(targetted to any minor release)
>>>> should have atleast bug id and correct author information
>>>>    *   Cassandra's template: patch by <author>; reviewed by <committer>
>>>> for CASSANDRA-<ticket>
>>>> 9.  Once the release branch is created(after code freeze), any bug
>>>> in jira can be marked with fix version current release(4.4) only on
>>>> RM's approval and only they can go to the release branch.  This can be
>>>> done through jira and with certain rules.(may be using jira vote?)
>>>> this would save the cherry-picking time and another branch maintenance.
>>>> 
>>>> 
>>>> 
>>>> Please add your thoughts/suggestions/comments.
>>>> 
>>>> 
>>>> 
>>>> Ref:
>>>> http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html
>>>> https://www.youtube.com/watch?v=AJ-CpGsCpM0
>>>> 
>>>> ~Rajani
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> *Mike Tutkowski*
>>> *Senior CloudStack Developer, SolidFire Inc.*
>>> e: mike.tutkow...@solidfire.com
>>> o: 303.746.7302
>>> Advancing the way the world uses the cloud
>>> <http://solidfire.com/solution/overview/?video=play>*™*
>>> 
>> 
>> 
>> 
>> -- 
>> *Mike Tutkowski*
>> *Senior CloudStack Developer, SolidFire Inc.*
>> e: mike.tutkow...@solidfire.com
>> o: 303.746.7302
>> Advancing the way the world uses the cloud
>> <http://solidfire.com/solution/overview/?video=play>*™*
> 

Reply via email to