Re: [BUG] - git rebase -i performs rebase when it shouldn't?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 12, 2010 at 11:13 AM, Johannes Sixt <j.sixt@xxxxxxxxxxxxx> wrote:
> Am 4/12/2010 16:09, schrieb Eugene Sajine:
>> esajine@ESAJINEWWW /c/git_repos/test2 (topic)
>> $ git rebase master
>> Current branch topic is up to date.
>> <======= Really? Topic is actually based on next – what does this "up
>> to date" mean??
>
> Why should rebase bother? The difference between master and topic are
> *two* commits. Since these two are already on top of master in linear
> history, you get no advantage by doing a rebase operation. Therefore, you
> see "already up to date".

You lost me completely...
Rebase means change the base of the commit, change the fork point.
Current fork point for topic is next. I want it to be master. What is
up to date here???
The message is poorly worded for sure.

I know that the form i have to use is:

git rebase --onto master next topic

but it is just because topic is not direct descendant of master, isn't it?


>
>> esajine@ESAJINEWWW /c/git_repos/test2 (topic)
>> $ git rebase -i --onto master topic
>> Successfully rebased and updated refs/heads/topic. <=== BUG – here it
>> printed me “noop” in file to edit, when I exited it should do nothing,
>> but it still did something and I double checked it.
>
> Not a bug.
>
> Your command is the same as
>
>   git rebase -i --onto master topic topic
>
> because you are already on branch topic. Since there are no commits in the
> range topic..topic, rebase -i told you "noop". This word is perhaps poorly
> chosen, because it does not mean "no operation"[*], but "there are no
> commits to transfer". But branch 'topic' that you gave as the last
> argument (or implicitly by being at branch 'topic') is still transferred
> --onto master. This explains the result that you observed.
>
> Of course, if you do not 'reset --hard topic@{1}' at this point, you will
> ultimately lose the commits on branch topic.
>
> [*] You can get "no operation" by deleting the line "noop".
>
> -- Hannes
>

Come on! Please, please, explain me why it behaves DIFFERENTLY:

esajine@ESAJINEWWW /c/git_repos/test2 (topic)
$ git rebase --onto master topic
First, rewinding head to replay your work on top of it...
fatal: Not a range.
Nothing to do.
                <======== topic..HEAD is not a range, agreed


esajine@ESAJINEWWW /c/git_repos/test2 (topic)
$ git rebase -i --onto master topic
Successfully rebased and updated refs/heads/topic. <=== BUG – here it
printed me “noop” in file to edit, when I exited it should do nothing,
but it still did something and I double checked it.


Thanks,
Eugene
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]