Subject: Re: [PATCH] Documentation/git-rebase.txt: fix -f description to match actual git behavior.

From: Sergey Organov <[email-masked]>
Date: Tue, 19 Aug 2014 13:57:56 +0400

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

> Sergey Organov <[email-masked]> writes:
>
>>> A sentence "--force has no effect under --preserve-merges mode" does
>>> not tell the readers very much, either and leaves them wondering if
>>> it means "--preserve-merges mode always rebases every time it is
>>> asked, never noticing 'ah, the history is already in a good shape
>>> and there is no need to do anything further'" or "--preserve-merges
>>> mode ignores --force and refuses to recreate the history if the
>>> history is in the shape the mode deems is already desirable."
>>
>> In fact there is no way to force rebase when --preserve-merges is given.
>> Neither --force nor --no-ff has any effect.
>>
>> Maybe some clarification could be given in --preserve-merges
>> description, provided it's not clear that "has no effect" for --force
>> means that one can't force the rebase in this case.
>
> I am not sure if that is an intended behaviour or simply a bug (I
> rarely use preserve-merges myself, so I offhand do not know for
> certain).

It seems that there is some problem there anyway. Probably a slight
misfeature rather than a bug, as --preserve-merges always pretends it
does something, even when it does not:

$ git log --oneline --graph --decorate
*   6f25bd5 (HEAD, topic) M
|\  
| * c5a4a43 C
* | 3c6ab7a (master) N
* | 99ff328 B
|/  
* 130ae2d A
$ git rebase --preserve-merges master
Successfully rebased and updated refs/heads/topic.
$ git log --oneline --graph --decorate
*   6f25bd5 (HEAD, topic) M
|\  
| * c5a4a43 C
* | 3c6ab7a (master) N
* | 99ff328 B
|/  
* 130ae2d A
$

"git reflog topic" doesn't show any changes either.

-- 
Sergey.