All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Webb <chris@arachsys.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: Editing the root commit
Date: Wed, 20 Jun 2012 20:35:14 +0100	[thread overview]
Message-ID: <20120620193513.GA3192@arachsys.com> (raw)
In-Reply-To: <7vy5nhvo0z.fsf@alter.siamese.dyndns.org>

Junio C Hamano <gitster@pobox.com> writes:

> What if we do not say --onto here?  I am not asking what the current
> implementation does (we get an error message saying "I want 'onto'
> specified").  What _should_ this command mean to a na??ve user?
> 
>     $ git rebase [-i] --root
> 
> I think it should mean "replay all my history down to root".  The
> original root commit should become the new root commit in the
> rewritten history.

Yes, I definitely agree with everything you say here. That's exactly what
I'd expect from git rebase --root without --onto, and what I'd hope to be
able to implement in a patch series.

> For the root commit in the history, you check it out on the detached
> HEAD.  Under "--interactive" if the insn sheet tells you to allow
> the user to "edit/amend/reword" it, give control back the user after
> you have detached HEAD at that commit.  The user experience should
> be identical to the case you are replaying on an existing commit
> after that point.

I think it might a little more complicated than detecting when we have to do
a commit --amend on the root commit though? The user might have reordered
the first commit (introducing A and B, say) with the second commit
(introducing C and D), or dropped the original root commit entirely.

My understanding of the way --interactive works at the moment is that it
checks out the starting commit (whether given explicitly by --onto or taken
from <upstream>) and then 'plays out' the commits as described in the
instruction sheet.

I could re-use this unchanged if I could do a git checkout --orphan without
having to create a new branch, but I don't think this is allowed: I can have
a detached head or make an orphan checkout onto a new branch, but not both
at the same time? Would you prefer that I create a temporary branch just to
be able to git checkout --orphan onto it here, or that I add support for
this kind of 'detached HEAD with no parent' state, or is there a natural way
to rework --interactive without needing to do this which I'm missing?

Best wishes,

Chris.

  parent reply	other threads:[~2012-06-20 19:35 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-19  9:16 Editing the root commit Chris Webb
2012-06-19 10:09 ` Junio C Hamano
2012-06-19 11:17   ` Chris Webb
2012-06-20  9:32     ` Chris Webb
2012-06-20 18:25       ` Junio C Hamano
2012-06-20 19:29         ` Jeff King
2012-06-20 19:39           ` Chris Webb
2012-06-20 19:48             ` Jeff King
2012-06-22 20:50               ` Chris Webb
2012-06-22 21:35                 ` Junio C Hamano
2012-06-22 22:02                   ` Chris Webb
2012-06-22 22:26                     ` Chris Webb
2012-06-22 22:50                       ` Junio C Hamano
2012-06-23  7:20                         ` Chris Webb
2012-06-26 15:04                 ` git-commit bug (was Re: Editing the root commit) Chris Webb
2012-06-26 15:06                   ` [PATCH] git-checkout: disallow --detach on unborn branch Chris Webb
2012-06-26 18:08                   ` git-commit bug Junio C Hamano
2012-06-26 13:33               ` Editing the root commit Chris Webb
2012-06-26 13:36                 ` [PATCH 1/2] rebase -i: support --root without --onto Chris Webb
2012-06-26 13:36                   ` [PATCH 2/2] Add tests for rebase -i " Chris Webb
2012-06-26 19:20                   ` [PATCH 1/2] rebase -i: support " Junio C Hamano
2012-06-26 19:38                     ` Chris Webb
2012-06-26 20:05                       ` Junio C Hamano
2012-06-26 20:11                         ` Chris Webb
2012-06-26 21:24                           ` Junio C Hamano
2012-06-26 21:27                             ` Chris Webb
2012-06-20 19:35         ` Chris Webb [this message]
2012-06-25 17:22         ` Editing the root commit Martin von Zweigbergk
2012-06-19 11:50 ` jaseem abid

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=20120620193513.GA3192@arachsys.com \
    --to=chris@arachsys.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.