I prefer either (a) or (b) depending on the content of the commit
history. Some PRs have well-curated, useful distinct commits, whereas
others consist mostly of fixups and other minor changes that are
better squashed.

On Tue, Nov 28, 2017 at 11:47 AM, Thomas Weise <t...@apache.org> wrote:
>
> (a) -0 due to extra noise in the commit log
> (b) -1 (as standard/default) this should be done by contributor as there may
> be few situation where individual commits should be preserved
> (c) +1 the rebase will also record the committer (which would be merge
> commit author otherwise)
>
> In general the process should result in "merged" status for a merged PR as
> opposed to "closed" as seen often currently.
>
> Thanks,
> Thomas
>
>
>
> On Tue, Nov 28, 2017 at 11:23 AM, Kenneth Knowles <k...@google.com> wrote:
>>
>> On Tue, Nov 28, 2017 at 11:16 AM, Raghu Angadi <rang...@google.com> wrote:
>>>
>>> -1 for (a): no need to see all the private branch commits from
>>> contributor. It often makes me more conscious of local commits.
>>
>>
>> I want to note that on my PRs these are not private commits. Each one is a
>> meaningful isolated change that can be rolled back and is useful to keep
>> separate when looking at `git blame` or the history of a file. I would
>> encourage every contributor to also do this. A PR is the unit of code
>> review, but the unit of meaningful change to a repository is often much
>> smaller.
>>
>> Kenn
>>
>>>
>>> +1 for (b): with committer replacing the squashed commit messages with
>>> '[BEAM-jira or PRID]: Brief cut-n-paste (or longer if it contributor
>>> provided one)'.
>>> -1 for (c): This is quite painful for contributors to work with if there
>>> has been merge conflict with master. Especially for larger PRs with multiple
>>> updates.
>>>
>>> On Tue, Nov 28, 2017 at 10:24 AM, Lukasz Cwik <lc...@google.com> wrote:
>>>>
>>>> Is it possible for mergebot to auto squash any fixup! and perform the
>>>> merge commit as described in (a), if so then I would vote for mergebot.
>>>>
>>>> Without mergebot, I vote:
>>>> (a) 0 I like squashing fixup!
>>>> (b) -1
>>>> (c) +1 Most of our PRs are for focused singular changes which is why I
>>>> would rather squash everything over not squashing anything
>>>>
>>>>
>>>>
>>>> On Tue, Nov 28, 2017 at 9:57 AM, Kenneth Knowles <k...@google.com> wrote:
>>>>>
>>>>> On Tue, Nov 28, 2017 at 9:51 AM, Ben Chambers <bchamb...@google.com>
>>>>> wrote:
>>>>>>
>>>>>> One risk to "squash and merge" is that it may lead to commits that
>>>>>> don't have clean descriptions -- for instance, commits like "Fixing 
>>>>>> review
>>>>>> comments" will show up. If we use (a) these would also show up as 
>>>>>> separate
>>>>>> commits. It seems like there are two cases of multiple commits in a PR:
>>>>>>
>>>>>> 1. Multiple commits in a PR that have semantic meaning (eg., a PR
>>>>>> performed N steps, split across N commits). In this case, keeping the
>>>>>> descriptions and performing either a merge (if the commits are separately
>>>>>> valid) or squash (if we want the commits to become a single commit in
>>>>>> master) probably makes sense.
>>>>>
>>>>>
>>>>> Keep 'em
>>>>>
>>>>>>
>>>>>> 2. Multiple commits in a PR that just reflect the review history. In
>>>>>> this case, we should probably ask the PR author to explicitly rebase 
>>>>>> their
>>>>>> PR to have semantically meaningful commits prior to merging. (Eg., do a
>>>>>> rebase -i).
>>>>>
>>>>>
>>>>> Ask the author to squash 'em.
>>>>>
>>>>> Kenn
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 28, 2017 at 9:46 AM Kenneth Knowles <k...@google.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> James brought up a great question in Slack, which was how should we
>>>>>>> use the merge button, illustrated [1]
>>>>>>>
>>>>>>> I want to broaden the discussion to talk about all the new
>>>>>>> capabilities:
>>>>>>>
>>>>>>> 1. Whether & how to use the "reviewer" field
>>>>>>> 2. Whether & how to use the "assignee" field
>>>>>>> 3. Whether & how to use the merge button
>>>>>>>
>>>>>>> My preferences are:
>>>>>>>
>>>>>>> 1. Use the reviewer field instead of "R:" comments.
>>>>>>> 2. Use the assignee field to keep track of who the review is blocked
>>>>>>> on (either the reviewer for more comments or the author for fixes)
>>>>>>> 3. Use merge commits, but editing the commit subject line
>>>>>>>
>>>>>>> To expand on part 3, GitHub's merge button has three options [1].
>>>>>>> They are not described accurately in the UI, as they all say "merge" 
>>>>>>> when
>>>>>>> only one of them performs a merge. They do the following:
>>>>>>>
>>>>>>> (a) Merge the branch with a merge commit
>>>>>>> (b) Squash all the commits, rebase and push
>>>>>>> (c) Rebase and push without squash
>>>>>>>
>>>>>>> Unlike our current guide, all of these result in a "merged" status
>>>>>>> for the PR, so we can correctly distinguish those PRs that were actually
>>>>>>> merged.
>>>>>>>
>>>>>>> My votes on these options are:
>>>>>>>
>>>>>>> (a) +1 this preserves the most information
>>>>>>> (b) -1 this erases the most information
>>>>>>> (c) -0 this is just sort of a middle ground; it breaks commit hashes,
>>>>>>> does not have a clear merge commit, but preserves other info
>>>>>>>
>>>>>>> Kenn
>>>>>>>
>>>>>>> [1] https://apachebeam.slack.com/messages/C1AAFJYMP/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Kenn
>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to