[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: Re: diff.defaultOptions implementation design [was diff.primer]
From: Jeff King <peff () peff ! net>
Date: 2009-02-17 19:56:58
Message-ID: 20090217195658.GC16067 () coredump ! intra ! peff ! net
[Download RAW message or body]
On Mon, Feb 16, 2009 at 11:24:33PM -0800, Keith Cascio wrote:
> I like the idea of using parse-options to handle diff options and I
> too would like all switches negatable. I will come back to the other
> ideas you mention if necessary. You laid it all out nicely.
If you are interested in parse-optification of diff options, search the
archive for messages from Pierre Habouzit on the topic in the last 6
months or so. It was discussed at the GitTogether, and he had some
preliminary patches.
> diff_setup(). But diff_setup() must still ascertain at least one
> runtime fact: whether or not we are running one of the commands that
> respects default options {diff, log, show}. Is there an elegant way
> to ascertain that fact from inside diff_setup()? How do you
> recommend? (BTW I believe my design achieves this elegantly).
You can impact the argument parsing by touching the diffopt struct
before doing the parsing. I.e., something like:
/* we generally get diff options from a rev_info structure */
struct rev_info rev;
/* initialize the structures */
init_revisions(&rev, prefix);
/* now set any preferences specific to this command */
DIFF_OPT_SET(&rev.diffopt, ALLOW_DEFAULT_CONFIG);
/* and then actually parse */
setup_revisions(argc, argv, rev, "HEAD");
See for example how cmd_whatchanged does it in builtin-log.c. Any
porcelains which wanted this feature would opt in to it.
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic