diff --git a/git.c b/git.c index 0b40e3060d8d95a6da7c8603317c6e2cb6c5ec46..72039c69cbd08dc70bd611765039883182472191 100644 --- a/git.c +++ b/git.c @@ -283,7 +283,6 @@ static int cmd_log(int argc, const char **argv, char **envp) char *buf = xmalloc(LOGSIZE); static enum cmit_fmt commit_format = CMIT_FMT_DEFAULT; int abbrev = DEFAULT_ABBREV; - int show_parents = 0; const char *commit_prefix = "commit "; argc = setup_revisions(argc, argv, &rev, "HEAD"); @@ -294,9 +293,6 @@ static int cmd_log(int argc, const char **argv, char **envp) if (commit_format == CMIT_FMT_ONELINE) commit_prefix = ""; } - else if (!strcmp(arg, "--parents")) { - show_parents = 1; - } else if (!strcmp(arg, "--no-abbrev")) { abbrev = 0; } @@ -317,7 +313,7 @@ static int cmd_log(int argc, const char **argv, char **envp) while ((commit = get_revision(&rev)) != NULL) { printf("%s%s", commit_prefix, sha1_to_hex(commit->object.sha1)); - if (show_parents) { + if (rev.parents) { struct commit_list *parents = commit->parents; while (parents) { struct object *o = &(parents->item->object); diff --git a/rev-list.c b/rev-list.c index ee88f567a7c9413376669c01050a210241701012..22141e2b045bb4e54709ec16c83942fcfdd44ed2 100644 --- a/rev-list.c +++ b/rev-list.c @@ -39,7 +39,6 @@ struct rev_info revs; static int bisect_list = 0; static int verbose_header = 0; static int abbrev = DEFAULT_ABBREV; -static int show_parents = 0; static int show_timestamp = 0; static int hdr_termination = 0; static const char *commit_prefix = ""; @@ -54,7 +53,7 @@ static void show_commit(struct commit *commit) if (commit->object.flags & BOUNDARY) putchar('-'); fputs(sha1_to_hex(commit->object.sha1), stdout); - if (show_parents) { + if (revs.parents) { struct commit_list *parents = commit->parents; while (parents) { struct object *o = &(parents->item->object); @@ -338,10 +337,6 @@ int main(int argc, const char **argv) commit_prefix = "commit "; continue; } - if (!strcmp(arg, "--parents")) { - show_parents = 1; - continue; - } if (!strcmp(arg, "--timestamp")) { show_timestamp = 1; continue; diff --git a/revision.c b/revision.c index c2a95aabef4558989c8b321d64b2c515a9f71309..1224a2de624047eebd24969852af6833dbea2874 100644 --- a/revision.c +++ b/revision.c @@ -605,6 +605,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch revs->limited = 1; continue; } + if (!strcmp(arg, "--parents")) { + revs->parents = 1; + continue; + } if (!strcmp(arg, "--dense")) { revs->dense = 1; continue; diff --git a/revision.h b/revision.h index 61e6bc9f4b12973b7faa69f63cb6986e9e19a080..0caeecf00f1aedf753f9f1fa88c3b5113cc53a52 100644 --- a/revision.h +++ b/revision.h @@ -34,7 +34,8 @@ struct rev_info { edge_hint:1, limited:1, unpacked:1, - boundary:1; + boundary:1, + parents:1; /* special limits */ int max_count;