All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Haggerty <mhagger@alum.mit.edu>
To: Jeff King <peff@peff.net>
Cc: Brandon McCaig <bamccaig@gmail.com>,
	git discussion list <git@vger.kernel.org>,
	Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>,
	Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: GSoC idea: allow "git rebase --interactive" todo lines to take options
Date: Fri, 28 Feb 2014 15:03:52 +0100	[thread overview]
Message-ID: <53109748.3090507@alum.mit.edu> (raw)
In-Reply-To: <20140228125241.GA23448@sigill.intra.peff.net>

On 02/28/2014 01:52 PM, Jeff King wrote:
> [...]
> Sorry, I missed an important word in my final sentence. It should have
> been "the examples you gave are NOT particularly interesting to me".
> 
> On Thu, Feb 27, 2014 at 01:10:30PM -0500, Brandon McCaig wrote:
>> Particularly all of the ideas expressed later on about
>> merge commits and resetting authors, etc. It seems like you're trying
>> to define a whole new command set (i.e., API) for Git, but within the
>> context of rebase --interactive. I think it would be hard to document
>> this, and hard to learn it, and harder still to remember it (even
>> though it would obviously try to mirror the existing Git command API).
> 
> I agree some of the examples are getting esoteric. Things like --signoff
> and --reset-author are a fairly straightforward convenience feature:
> they save you from writing "exec git commit --amend --signoff".
> 
> For others that cannot currently be done with a simple option to "git
> commit", I think a reasonable first step would be to implement them
> there. For example, you cannot currently "git commit --tree". Maybe that
> is too insane and low-level an option for "git commit". But if it is,
> then it is almost certainly too insane and low-level for a rebase
> instruction.
> 
> For others from Michael's list, I expect they may not make _sense_
> outside of a rebase. That is, they are operations whose input is not a
> single commit, but a sequence of commits (e.g., if you had some
> high-level command that allowed swapping two commits without having to
> redo the conflicts from the second commit). Those ones might make sense
> to exist as part of rebase and nowhere else (but then they are not
> necessarily just options, but rather new instructions).
> 
>> That said, I do think that this is probably a bad direction and
>> shouldn't be rushed into too fast.
> 
> I'm not sure whether it is a good idea or not. But I think it is looking
> decreasingly like a good GSoC project.

I guess I misread the sentiment of the mailing list, because I merged
this idea into the list about two hours ago.

I'm not claiming that all of the sub-ideas are good, but I do think that
some of them are, and that the general idea of allowing options on
todo-list commands would make it possible for them to be more expressive
while *avoiding* making them a lot harder to learn.  I would rather give
the user a few options that can be used consistently on multiple
commands than have to invent a new command for each new feature.  And I
think that the line-oriented nature of the todo list makes

    pick --signoff 1234abc Blah blah

easier to understand (and easier to type) than

    pick 1234abc Blah blah
    amend --signoff

let alone

    pick 1234abc Blah blah
    exec git commit --amend --signoff

I also like the idea of a non-broken "git rebase --interactive
--preserve-merges" via a todo option "-p" or something similar.

But if you think that even the proposal's simpler sub-ideas are
controversial, then let me know and I will delete the idea from the list
again.  I don't want a GSoC student to have to fight battles of my own
creation :-)

Michael

-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/

  reply	other threads:[~2014-02-28 14:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-26  8:04 GSoC idea: allow "git rebase --interactive" todo lines to take options Michael Haggerty
2014-02-26 10:52 ` Jeff King
2014-02-26 11:14   ` Michael Haggerty
2014-02-26 11:42     ` Jeff King
2014-02-26 14:55   ` Tay Ray Chuan
2014-02-26 19:55   ` Junio C Hamano
2014-02-27  7:48   ` Michael Haggerty
2014-02-27 18:10   ` Brandon McCaig
2014-02-28 12:52     ` Jeff King
2014-02-28 14:03       ` Michael Haggerty [this message]
2014-03-11  1:37         ` Jeff King
2014-03-11 19:31           ` 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=53109748.3090507@alum.mit.edu \
    --to=mhagger@alum.mit.edu \
    --cc=bamccaig@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=johannes.schindelin@gmx.de \
    --cc=martin.von.zweigbergk@gmail.com \
    --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 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.