From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Daniel Barkalow <barkalow@iabervon.org>
Cc: Git List <git@vger.kernel.org>,
Christian Couder <chriscool@tuxfamily.org>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [RFC PATCH 00/11] Sequencer Foundations
Date: Mon, 11 Apr 2011 14:25:23 +0530 [thread overview]
Message-ID: <20110411085521.GB28959@kytes> (raw)
In-Reply-To: <alpine.LNX.2.00.1104101445460.14365@iabervon.org>
Hi Daniel,
Daniel Barkalow writes:
> > Please note that 10/11 is not related to this series, but seems to be
> > a minor nit that's required to make all existing tests pass.
>
> That looks like an actual bug that only doesn't matter currently because
> the function is never called with enough junk on the stack.
Fixing this bug was one is one of the hidden motives of the patch I
send out just afterward [1].
> > 0. Is the general flow alright?
>
> I suspect it would be easier to review some of this with certain things
> squashed together; one patch that changes all of the variable references
> to what you want them to be is easier to understand than one that moves
> statics to function arguments, one that moves statics to struct fields,
> etc. Likewise, when you're converting some of the die() calls to error(),
> it's easier to review the patch if all of the die() calls that aren't
> changed in that patch don't get changed later in the series.
Agreed -- I'll post a reworked series shortly. Jonathan was finding
it hard to follow as well.
> > 1. Is it okay to use this kind of adaptive error handling (calling
> > 'die' in some places and returning error in other places), or should
> > it be more uniform?
>
> I think it should be systematic but not necessarily uniform. You should be
> able to give a guideline as to how to decide which to use (and you should
> probably actually give the guideline, so future developers make consistent
> choices). I think of "die" as being ideally for situations where the
> program can't understand what has happened well enough to know what to do
> about it.
Jonathan concurs. Where should I document this?
> > 2. In 11/11, I've used cmd_revert and cmd_rerere. This is highly
> > inelegant, mainly because of the command-line argument parsing
> > overhead. Re-implementing it using more low-level functions doesn't
> > seem to be the way to go either: for example, 'reset --hard' has some
> > additional logic of writing HEAD and ORIG_HEAD, which I don't want to
> > duplicate. Should I work on reworking parts of 'rerere.c' and
> > 'revert.c', or is there some other way?
>
> (ITYM cmd_reset here)
Yeah, sorry.
> I think rerere.c should get a rerere_clear(). I think it would make sense
> to implement the reset locally; the abort ought to be undoing exactly
> those things that you did, and I'm not actually sure the ORIG_HEAD is
> entirely appropriate. You ought to be able to use cleanup functions that
> correspond to the functions you used to make the mess in the first place.
Good suggestion -- rerere_clear is done [2]; now I have to figure out
if it makes sense to write a library for reset.
-- Ram
[1]: http://article.gmane.org/gmane.comp.version-control.git/171267
[2]: http://article.gmane.org/gmane.comp.version-control.git/171314
next prev parent reply other threads:[~2011-04-11 8:56 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
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 [this message]
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=20110411085521.GB28959@kytes \
--to=artagnon@gmail.com \
--cc=barkalow@iabervon.org \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--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.