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/
next prev parent 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 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).