From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git List <git@vger.kernel.org>,
Christian Couder <chriscool@tuxfamily.org>,
Daniel Barkalow <barkalow@iabervon.org>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH 03/11] revert: Introduce a struct to parse command-line options into
Date: Sun, 8 May 2011 17:39:08 +0530 [thread overview]
Message-ID: <20110508120905.GC3114@ramkum.desktop.amazon.com> (raw)
In-Reply-To: <7vmxjwtqhz.fsf@alter.siamese.dyndns.org>
Hi Junio,
Junio C Hamano writes:
> Ramkumar Ramachandra <artagnon@gmail.com> writes:
>
> > Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
>
> Again, "In later steps, a new API that takes a single commit and replays
> it in forward (cherry-pick) or backward (revert) direction will be
> introduced, and will take this structure as a parameter to tell it what to
> do" is missing from the above description.
>
> More importantly, the primary purpose of these variables is _not_ "to
> parse command line options into". It is to actively affect what happens
> in the code, and "parse command line" is merely a way to assign the
> initial values to them. So I'd rather see this patch described perhaps
> like this:
>
> cherry-pick/revert: introduce "struct replay_options"
>
> The current code uses a set of file-scope static variables to instruct
> the cherry-pick/revert machinery how to replay the changes, and
> initialises them by parsing the command line arguments. In later steps
> in this series, we would like to introduce an API function that calls
> into this machinery directly and have a way to tell it what to do.
>
> Introduce a structure to group these variables, so that the API can
> take them as a single "replay_options" parameter.
Right. Thanks for the nice commit message :)
> I strongly prefer to see this patch also update the callchain to pass a
> pointer to the options struct as parameter. I can guess without reading
> the rest the series that at some later step you would do that, but I think
> it makes more sense to do the conversion at this step, as you will be
> touching lines that use the global variables in this patch anyway, like
> this:
Good idea. I've passed the opts pointer around in the new series.
> > @@ -268,17 +278,17 @@ static struct tree *empty_tree(void)
> > static int error_dirty_index()
>
> It is probably a remnant of the earlier patches in this series, but this
> should start with:
>
> static int error_dirty_index(void)
>
> Of course, you will actually be passing the options structure, so it would
> become:
>
> static int error_dirty_index(struct replay_options *opts)
> {
> ...
> if (opts->action == REVERT)
> ...
> }
The very first patch removes this function (and puts the functionality
elsewhere) in the new series, so this comment doesn't apply.
Thanks for the review!
-- Ram
next prev parent reply other threads:[~2011-05-08 12:09 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-10 15:11 [RFC PATCH 00/11] Sequencer Foundations Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 01/11] revert: Avoid calling die; return error instead Ramkumar Ramachandra
2011-04-10 19:14 ` Jonathan Nieder
2011-05-08 12:04 ` Ramkumar Ramachandra
2011-04-11 20:26 ` Junio C Hamano
2011-04-10 15:11 ` [PATCH 02/11] revert: Lose global variables "commit" and "me" Ramkumar Ramachandra
2011-04-11 3:24 ` Christian Couder
2011-04-11 8:57 ` Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 03/11] revert: Introduce a struct to parse command-line options into Ramkumar Ramachandra
2011-04-10 19:21 ` Jonathan Nieder
2011-05-08 12:18 ` Ramkumar Ramachandra
2011-04-11 21:41 ` Junio C Hamano
2011-05-08 12:09 ` Ramkumar Ramachandra [this message]
2011-04-10 15:11 ` [PATCH 04/11] revert: Separate cmdline argument handling from the functional code Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 05/11] revert: Catch incompatible command-line options early Ramkumar Ramachandra
2011-04-11 21:44 ` Junio C Hamano
2011-05-08 11:47 ` Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 06/11] revert: Implement parsing --continue, --abort and --skip Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 07/11] revert: Handle conflict resolutions more elegantly Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 08/11] usage: Introduce error_errno correspoding to die_errno Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 09/11] revert: Write head, todo, done files Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 10/11] revert: Give noop a default value while argument parsing Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 11/11] revert: Implement --abort processing Ramkumar Ramachandra
2011-04-10 19:33 ` [RFC PATCH 00/11] Sequencer Foundations Daniel Barkalow
2011-04-11 8:55 ` Ramkumar Ramachandra
2011-04-10 19:47 ` Jonathan Nieder
2011-04-11 1:16 ` Daniel Barkalow
2011-04-11 6:42 ` Jonathan Nieder
2011-04-11 9:07 ` Ramkumar Ramachandra
2011-04-11 3:18 ` Christian Couder
2011-04-11 4:49 ` Ramkumar Ramachandra
2011-04-11 6:20 ` Christian Couder
2011-04-11 10:48 ` Ramkumar Ramachandra
2011-04-11 5:30 ` Daniel Barkalow
2011-04-11 5:38 ` Jonathan Nieder
2011-04-11 6:34 ` Daniel Barkalow
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=20110508120905.GC3114@ramkum.desktop.amazon.com \
--to=artagnon@gmail.com \
--cc=barkalow@iabervon.org \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.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.