I would strongly prefer smaller as small a commit as possible. And as large as 
necessary. I am less partial when it comes to PRs sizes. Sometimes depending on 
what is done in a PR, I don’t think it makes sense to issue a blanket statement 
that all PRs are one commit. I think there is a strong reason to make them one 
commit, but one size does not fit all. A great example is a refactor and a bug 
fix in one PR.

Thanks,
Mark

> On Dec 16, 2019, at 9:47 AM, Kirk Lund <kl...@apache.org> wrote:
> 
> Whenever I submit a PR with multiple commits that I intend to rebase to
> develop, I always try to ensure that each commit stands alone as is
> (compiles and passes tests). Separating file renames and refactoring from
> behavior changes into different commits seems very valuable to me, and I've
> had trouble getting people to review PRs without this separation (but it
> could be squashed as it's merged to develop).
> 
> It sounds to me like the real problem is (a) some PRs have multiple commits
> that don't compile or don't pass tests, and (b) some PRs that should be
> merged with squash are not (by accident most likely).
> 
> I can submit multiple PRs instead of one PR with multiple commits. So I'll
> change my response to -0 if that helps prevent commits to develop that
> don't compile or pass tests. Without preventing rebase or merge commits
> from github, I'm not sure how we can really enforce this or prevent (b)
> above.
> 
> On Fri, Dec 13, 2019 at 3:38 PM Alexander Murmann <amurm...@pivotal.io>
> wrote:
> 
>> I wonder if Kirk's and Naba's statements are necessarily at odds.
>> 
>> Make the change easy (warning: this may be hard), then make the easy
>>> change."
>> 
>> -Kent Beck
>> 
>> Following Kent Beck's advise might reasonably split into two commits. One
>> refactor commit and a separate commit that introduces the actual change.
>> They should be individually revertible and might be easier understood if
>> split out. I vividly remember a change on our code base where someone did a
>> huge amount of refactoring that resulted than in one parameter changing in
>> order to get the desired functionality change. If that was in one commit,
>> it would be hard to see the actual change. If split out, it's beautiful and
>> crystal clear.
>> 
>> I am unsure how that would be reflected in terms of JIRA ticket references.
>> Usually we assume that if there is a commit with the ticket number, the
>> issue is resolved. Maybe the key here is to create a separate refactoring
>> ticket.
>> 
>> Would that allow us to have our cake and eat it too?
>> 
>> On Fri, Dec 13, 2019 at 3:16 PM Nabarun Nag <n...@pivotal.io> wrote:
>> 
>>> It is to help with bisect operations when things start failing ... helps
>> us
>>> it revert and build faster.
>>> also with cherry picking features / fixes to previous versions .
>>> And keeping the git history clean with no unnecessary “merge commits”.
>>> 
>>> Regards
>>> Naba
>>> 
>>> 
>>> On Fri, Dec 13, 2019 at 2:25 PM Kirk Lund <kl...@apache.org> wrote:
>>> 
>>>> -1 I really like to sometimes have more than 1 commit in a PR and keep
>>> them
>>>> separate when they merge to develop
>>>> 
>>>> On Tue, Oct 22, 2019 at 5:12 PM Nabarun Nag <n...@pivotal.io> wrote:
>>>> 
>>>>> Hi Geode Committers,
>>>>> 
>>>>> A kind request for using squash commit instead of using merge.
>>>>> This will really help us in our bisect operations when a
>>>>> regression/flakiness in the product is introduced. We can automate
>> and
>>> go
>>>>> through fewer commits faster, avoiding commits like "spotless fix"
>> and
>>>>> "re-trigger precheck-in" or other minor commits in the merged branch.
>>>>> 
>>>>> Also, please use the commit format : (helps us to know who worked on
>>> it,
>>>>> what is the history)
>>>>> 
>>>>> 
>>>>> 
>>>>> *                GEODE-xxxx: <brief intro >
>>>>> * explanation line 1                                * explanation
>> line
>>> 2*
>>>>> 
>>>>> This is not a rule or anything, but a request to help out your fellow
>>>>> committers in quickly detecting a problem.
>>>>> 
>>>>> For inspiration, we can look into Apache Kafka / Spark where they
>> have
>>> a
>>>>> complete linear graph for their main branch HEAD [see attachment]
>>>>> 
>>>>> Regards
>>>>> Naba.
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 
>> 

Reply via email to