Subject: Re: Bug(let): status reports 'can fast-forward' when not true

From: Kjetil Barvik <[email-masked]>
Date: Wed, 22 Apr 2009 10:07:42 +0200

Junio C Hamano <[email-masked]> writes:

> Jeff King <[email-masked]> writes:
>
>> [cc'ing Kjetil, as this is a fallout of 19de5d6]
>>
>> On Tue, Apr 21, 2009 at 09:53:52PM +0100, Charles Bailey wrote:
>>
>>> I was not really thinking when I get fetched, and ran git status on my
>>> pu branch. I was told that pu was behind origin/pu by 104 commits and
>>> could be fast-forwarded, so I git merged origin/pu and was mildly
>>> surprised when git merge made a commit for me.
>>> 
>>> A quick investigation revealed that pu had (of course) been rewound,
>>> but the only commits that it had that the new pu didn't, were merge
>>> commits.
>>
>> I think this is an unintended consequence of 19de5d6
>> (stat_tracking_info(): only count real commits, 2009-03-04). It is
>> perhaps more useful when seeing the actual numbers to see only the count
>> of real commits, but it makes statements like "can be fast-forwarded" no
>> longer true.
>>
>> So I think we need to either:
>>
>>   1. reword the "can be fast-forwarded" text to something else
>>
>>   2. revert 19de5d6, since merge commits _can_ be interesting
>>
>>   3. refactor stat_tracking_info to return "real" and "merge" counts,
>>      and change the text for the case of "real == 0 && merge > 0".
>>
>> -Peff
>
> Let's revert it for now and then try #3 after 1.6.3 final.

  OK.  

  Then I have some time thinking about a solution.  Maybe:

  4. Introduce an argument "--no-merges", and then only show real
     commits when used.

  -- kjetil