All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: Sean Allred <allred.sean@gmail.com>, git@vger.kernel.org
Subject: Re: [Q] rebase -i: turn "pick" to "edit", make no change, what should happen?
Date: Fri, 17 May 2024 09:32:08 +0200	[thread overview]
Message-ID: <ZkcH-LAkLkf_wvfq@tanuki> (raw)
In-Reply-To: <xmqqmsoonccd.fsf@gitster.g>

[-- Attachment #1: Type: text/plain, Size: 2036 bytes --]

On Fri, May 17, 2024 at 12:09:54AM -0700, Junio C Hamano wrote:
> Sean Allred <allred.sean@gmail.com> writes:
> 
> > Setting aside the obvious reality that an actual change here could have
> > pretty serious UX considerations for folks with muscle-memory, what in
> > your opinion would be the right thing to do? Why? Are rebase commands
> > 'shortcuts' or are they intended to be orthogonal? Do they have designed
> > purposes?
> >
> > I'm wondering if you can tease out what the 'ideal' state looks like to
> > you, then you can identify what if anything there is to be done about
> > it.
> 
> Oh, it would be very simple.
> 
> If I say "edit", whether I made a tree change or not, I want to get
> an editor when I said "rebase --continue".  If I say "reword", I
> want to get an editor _without_ having a chance to muck with the
> tree status.  That would be the "ideal" behaviour, iow, the "mental
> model" is just "edit" gives the users a chance to edit both trees
> (by first giving control back to a shell prompt) and the log message
> (by opening the editor upon "--continue"), while "reword" is only
> about the message so does not give shell prompt back to the user
> (unless absolutely necessary, that is.  If the "reword" were to
> conflict due to tree changes in earlier steps, it would need to give
> control back to a shell prompt to ask the user's help to resolve the
> conflict.  It is just that when there is no need to edit the tree
> otherwise, that is skipped).

I quite frequently use "edit" just to inspect commits, stop at random
points in the history, run tests and whatnot. So this would be a UX
regression for me because I do not want to change commit messages and
don't want to be bothered.

With the introduction of the "break" command you can certainly argue
that "edit" is the wrong command to use in my case. Muscle memory is
hard to retrain though :)

One could potentially make the behaviour configurable so that you get to
choose how "edit" behaves.

Patrick

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2024-05-17  7:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-16 19:21 [Q] rebase -i: turn "pick" to "edit", make no change, what should happen? Junio C Hamano
2024-05-16 22:18 ` Sean Allred
2024-05-17  7:09   ` Junio C Hamano
2024-05-17  7:32     ` Patrick Steinhardt [this message]
2024-05-17  8:54       ` Dragan Simic
2024-05-17 13:52         ` Sean Allred
2024-05-17 15:17       ` Junio C Hamano
2024-05-17 12:42 ` Marc Branchaud
2024-05-17 17:04   ` Junio C Hamano

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=ZkcH-LAkLkf_wvfq@tanuki \
    --to=ps@pks.im \
    --cc=allred.sean@gmail.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.