From: Junio C Hamano Date: Sun, 20 Mar 2011 06:25:38 +0000 (-0700) Subject: Merge branch 'mm/maint-log-n-with-diff-filtering' X-Git-Tag: v1.7.5-rc0~51 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a91df69cbb5ced7837525106ff57ff349180770b?ds=inline;hp=-c Merge branch 'mm/maint-log-n-with-diff-filtering' * mm/maint-log-n-with-diff-filtering: log: fix --max-count when used together with -S or -G --- a91df69cbb5ced7837525106ff57ff349180770b diff --combined builtin/log.c index 99e33b3651,2b82272eac..796e9e5746 --- a/builtin/log.c +++ b/builtin/log.c @@@ -89,7 -89,7 +89,7 @@@ static void cmd_log_init(int argc, cons rev->always_show_header = 0; if (DIFF_OPT_TST(&rev->diffopt, FOLLOW_RENAMES)) { rev->always_show_header = 0; - if (rev->diffopt.nr_paths != 1) + if (rev->diffopt.pathspec.nr != 1) usage("git logs can only follow renames on one pathname at a time"); } for (i = 1; i < argc; i++) { @@@ -263,7 -263,13 +263,13 @@@ static int cmd_log_walk(struct rev_inf * retain that state information if replacing rev->diffopt in this loop */ while ((commit = get_revision(rev)) != NULL) { - log_tree_commit(rev, commit); + if (!log_tree_commit(rev, commit) && + rev->max_count >= 0) + /* + * We decremented max_count in get_revision, + * but we didn't actually show the commit. + */ + rev->max_count++; if (!rev->reflog_info) { /* we allow cycles in reflog ancestry */ free(commit->buffer); @@@ -1352,23 -1358,6 +1358,23 @@@ static const char * const cherry_usage[ NULL }; +static void print_commit(char sign, struct commit *commit, int verbose, + int abbrev) +{ + if (!verbose) { + printf("%c %s\n", sign, + find_unique_abbrev(commit->object.sha1, abbrev)); + } else { + struct strbuf buf = STRBUF_INIT; + struct pretty_print_context ctx = {0}; + pretty_print_commit(CMIT_FMT_ONELINE, commit, &buf, &ctx); + printf("%c %s %s\n", sign, + find_unique_abbrev(commit->object.sha1, abbrev), + buf.buf); + strbuf_release(&buf); + } +} + int cmd_cherry(int argc, const char **argv, const char *prefix) { struct rev_info revs; @@@ -1453,7 -1442,22 +1459,7 @@@ commit = list->item; if (has_commit_patch_id(commit, &ids)) sign = '-'; - - if (verbose) { - struct strbuf buf = STRBUF_INIT; - struct pretty_print_context ctx = {0}; - pretty_print_commit(CMIT_FMT_ONELINE, commit, - &buf, &ctx); - printf("%c %s %s\n", sign, - find_unique_abbrev(commit->object.sha1, abbrev), - buf.buf); - strbuf_release(&buf); - } - else { - printf("%c %s\n", sign, - find_unique_abbrev(commit->object.sha1, abbrev)); - } - + print_commit(sign, commit, verbose, abbrev); list = list->next; }