From: Johannes Sixt <j.sixt@viscovery.net>
To: Eugene Sajine <euguess@gmail.com>
Cc: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: [BUG] - git rebase -i performs rebase when it shouldn't?
Date: Mon, 12 Apr 2010 17:47:08 +0200 [thread overview]
Message-ID: <4BC3407C.10701@viscovery.net> (raw)
In-Reply-To: <w2t76c5b8581004120828p8e1e5c49m7bcc53c8c3e68d06@mail.gmail.com>
Am 4/12/2010 17:28, schrieb Eugene Sajine:
> On Mon, Apr 12, 2010 at 11:13 AM, Johannes Sixt <j.sixt@viscovery.net> 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.
Rebase is meant to change the fork point for a history like this:
--o--o--A--o--o--B <-- master
\
o
\
o <-- topic
topic forks from master at commit A; you use rebase to create history that
looks like this:
--o--o--A--o--o--B <-- master
\
o
\
o <-- topic
(OK, you knew that already.)
> Current fork point for topic is next. I want it to be master. What is
> up to date here???
You are already in the second situation above. The fact that you labeled
one commit "next" in between, like this:
--o--o--A--o--o--B <-- master
\
o <-- next
\
o <-- topic
does not change the meaning of the command "git rebase master" in the
slightest: topic is "up to date" with respect to master.
> 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?
Watch out the wording that you use: "descendant of" has a well-defined
meaning in git, in particular, topic *is* a direct descendant of master.
What you wanted to say is: "but it is just because I have accidentally
begun to commit 'topic' on top of 'next', but I didn't want to do that".
And yes, you are right, because of this you need --onto in the rebase command.
> 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.
A historical accident, so to say. The implementor of interactive rebase
felt the "noop" behavior was useful, and I agree, FWIW.
-- Hannes
next prev parent reply other threads:[~2010-04-12 15:47 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 19:35 [BUG] - git rebase -i performs rebase when it shouldn't? Eugene Sajine
2010-04-10 4:26 ` Jeff King
2010-04-10 4:39 ` Junio C Hamano
2010-04-10 4:47 ` Jeff King
2010-04-10 19:58 ` Johannes Sixt
2010-04-11 10:15 ` Jeff King
2010-04-11 17:54 ` Johannes Sixt
2010-04-12 1:01 ` Jeff King
2010-04-12 10:50 ` Michal Vitecek
2010-04-12 17:39 ` Johannes Sixt
2010-04-10 22:10 ` Eugene Sajine
2010-04-11 10:22 ` Jeff King
2010-04-11 14:06 ` Eugene Sajine
2010-04-12 14:09 ` Eugene Sajine
2010-04-12 15:13 ` Johannes Sixt
2010-04-12 15:28 ` Eugene Sajine
2010-04-12 15:47 ` Johannes Sixt [this message]
2010-04-13 16:30 ` Eugene Sajine
2010-04-14 6:08 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BC3407C.10701@viscovery.net \
--to=j.sixt@viscovery.net \
--cc=euguess@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).