From: Junio C Hamano Date: Thu, 31 Jul 2008 08:35:33 GMT Subject: Re: git blame not respecting --find-copies-harder ? Message-ID: <7v8wvizc16.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20080731082553.GA19522@sigill.intra.peff.net> Jeff King writes: > On Thu, Jul 31, 2008 at 12:36:59AM -0700, Junio C Hamano wrote: > >> Alas, shortlog does not take --all. Yes, I know >> >> git log --since=3.day --all | git shortlog | sort | uniq -c >> >> is an obvious workaround, but it is mildly irritating. > > Hmm. Could it be as simple as: > > diff --git a/revision.c b/revision.c > index a843c42..eaa5572 100644 > --- a/revision.c > +++ b/revision.c > @@ -1002,7 +1002,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg > !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk")) > { > unkv[(*unkc)++] = arg; > - return 0; > + return 1; > } > > if (!prefixcmp(arg, "--max-count=")) { > > That is, handle_revision_opt says "yes we parsed this, and it should be > gone" even though it still gets stuck in the "unknown" section to be > parsed by setup_revisions later. Hmm, wouldn't that suggest it needs to return 1 when an option candidate given to diff_opt_parse() turns out not to be a diff option and stuffed back to unkv[] at the end of this function?