[Pulp-dev] PUP-3: Proposal to change our git workflow

Brian Bouterse bbouters at redhat.com
Fri May 26 16:20:04 UTC 2017


The ability for us to change the PR branch does eliminate some of the back
and forth with the contributor so that is addressed and good. I hadn't
thought of that.

The reason I'm still +1 is because I have two main concerns with the
current processes: conflict resolution and avoiding the epic merge forward
issues we've had in the past. When merging other people's code I can't be
resolving conflicts. When we didn't get many community PRs I was resolving
my conflicts on my own code and that was just part of it. As we get more
community PRs, we need a frictionless merging experience that doesn't
involve conflict resolution ever. The second reason we should pass this is
so we never have another merge forward fail like the three we've had
before, each which took several people hours and days to resolve.

I like all the discussion on this. It shows how thoughtfully people are
considering this important change. Thank you for all the discussion and
opinions.



On Fri, May 26, 2017 at 11:37 AM, David Davis <daviddavis at redhat.com> wrote:

> To address your concern about how to handle community contributions (1),
> in GitHub, you can change the base branch of any PR if you have commit
> access to the repo. So contributors could open PRs against master and then
> we could switch it to the correct x.y-dev branch if needed, Github will
> automatically check for merge conflicts, and the test suite gets run again
> automatically.
>
> For item (2), I would expect the person reviewing/merging the code to have
> enough familiarity with the code to be able to merge that code forward. No?
>
>
> David
>
> On Thu, May 25, 2017 at 11:41 AM, Brian Bouterse <bbouters at redhat.com>
> wrote:
>
>> +1 from me
>>
>> I read the article, but does it really apply to us? The issues it
>> describes stemsfrom "when a change is cherry-picked into a branch and there
>> is a conflict a new commitid is created". In our case when a cherry pick
>> back creates a conflict we are recommending to abandon the cherry pick [1]
>> which should avoid the situation.
>>
>> If we're unable to pass this vote, I'm left with two practical problems.
>> Mainly in terms of PRs from the community. We're getting more PRs from the
>> community.
>>
>> 1) For almost all bugfix PRs that are opened from non core devs they
>> target master. With the current process we need to ask them to rebase their
>> code and then close+reopen the PR against the current x.y-dev branch.
>>
>> 2) After a community PR is merged, I need to merge it forward. If there
>> are any conflicts at that point I (the merger) needs to fix up code I
>> didn't write. That is not a good position for the person merging to be in.
>>
>> I'm not able to facilitate these things anymore. If we can't pass the
>> vote who will handle ^ situations?
>>
>> [1]: https://github.com/pulp/pups/pull/3/files#diff-18a9b677be3c8
>> c4434ac32097da7fa58R86
>>
>> -Brian
>>
>> On Thu, May 25, 2017 at 10:30 AM, Patrick Creech <pcreech at redhat.com>
>> wrote:
>>
>>> -1
>>>
>>> I've come late to this topic, and wanted to wait till voting time to
>>> form an opinion, so I apologize
>>> if some of the reasons I'm voting -1 have already been discussed and
>>> brought up.
>>>
>>> While trying to come up with a decision on this topic, I googled "git
>>> merge vs cherry-pick".  The
>>> overwhelming ammount of search results were basically 'don't
>>> cherry-pick!'.  The page that I favored
>>> is [0].  It brings up some good points about loosing git's internal
>>> tracking of commits.  It seems
>>> cherry-picks do get new commit id's instead of using the same
>>> ones.  While this site is basically a
>>> 'Don't cherry pick' opinion piece, it did make me think about our
>>> motivations for moving away.
>>>
>>> One of my concerns is we are talking about adding more procedure and
>>> complexity, and I'm personally
>>> questionable of the benefit.  Based on what i've read, people are using
>>> this strategy successfully,
>>> so maybe I'm wrong on this assumption.
>>>
>>> The main reason that I've noticed for peoples motivations for
>>> cherry-picking is 'Our merge workflow
>>> has bit us repeatedly in the past, let's not do that anymore!'.  The
>>> second to last paragraph under
>>> 'Motivation' spells this out spectacularly.  The reasons for +1's with
>>> people I've spoken too have
>>> seemed more of a vote -against- our current merge forward process than
>>> -for- cherry-picking.
>>>
>>> I'm more in favor of us re-evaluating when and how we manage the merge
>>> forwards (as it does appear
>>> our current automation has been a big source of pain at least once), and
>>> believe that just adding
>>> better process and diligence around our current way of doing things will
>>> probably be better than
>>> inventing a new process and figuring out the pain points as we go
>>> there.
>>>
>>>
>>> [0] https://dan.bravender.net/2011/10/20/Why_cherry-picking_shou
>>> ld_not_be_part_of_a_normal_git_workf
>>> low.html
>>> <https://dan.bravender.net/2011/10/20/Why_cherry-picking_should_not_be_part_of_a_normal_git_workflow.html>
>>>
>>>
>>> On Wed, 2017-05-24 at 16:00 -0400, David Davis wrote:
>>> > I’d like to kick off the voting on PUP-3 which is the proposal to
>>> change our git workflow by using
>>> > cherry-picks instead of merging changes forward. The proposal can be
>>> viewed here:
>>> >
>>> > https://github.com/daviddavis/pups/blob/pup3/pup-0003.md
>>> >
>>> > Feel free to submit any comments/nitpicks/etc on the PR[0].
>>> >
>>> > PUP-1 outlines our voting system:
>>> >
>>> > https://github.com/pulp/pups/blob/master/pup-0001.md
>>> >
>>> > But to sum it up:
>>> >
>>> > +1: "Will benefit the project and should definitely be adopted."
>>> > +0: "Might benefit the project and is acceptable."
>>> > -0: "Might not be the right choice but is acceptable."
>>> > -1: "Not the right choice and should definitely not be adopted."
>>> >
>>> > I’ll set the initial deadline for the voting to be June 5th 9pm UTC.
>>> >
>>> > [0] https://github.com/pulp/pups/pull/3
>>> >
>>> > David
>>> > _______________________________________________
>>> > Pulp-dev mailing list
>>> > Pulp-dev at redhat.com
>>> > https://www.redhat.com/mailman/listinfo/pulp-dev
>>>
>>> _______________________________________________
>>> Pulp-dev mailing list
>>> Pulp-dev at redhat.com
>>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>>
>>>
>>
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev at redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20170526/544fe84f/attachment.htm>


More information about the Pulp-dev mailing list