From: Junio C Hamano Date: Sat, 29 Sep 2007 17:02:47 GMT Subject: Re: [PATCH 1/1] --color and --no-color git-log options don't need diffs to be computed. Message-ID: <7v4phdl808.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20070929123724.01BB045EC@madism.org> Pierre Habouzit writes: > Signed-off-by: Pierre Habouzit > --- > > revision.c | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/revision.c b/revision.c > index 33d092c..0dee835 100644 > --- a/revision.c > +++ b/revision.c > @@ -1209,8 +1209,9 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch > > opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i); > if (opts > 0) { > - if (strcmp(argv[i], "-z")) > - revs->diff = 1; > + revs->diff = strcmp(argv[i], "-z") > + && strcmp(argv[i], "--color") > + && strcmp(argv[i], "--no-color"); > i += opts - 1; > continue; > } Aside from the "don't override the option that is already set" comment from David, I am somewhat unhappy that this piece already knows too much about which option to diff potentially changes the output (but not commits us to produce the diff) and which option causes us to actually produce output.