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