From: Linus Torvalds Date: Fri, 31 Mar 2006 00:52:42 +0000 (-0800) Subject: Move "--parent" parsing into generic revision.c library code X-Git-Tag: v1.3.0-rc2~21 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=7b0c996679e975b666fd27c922e1e0837b611c98;p=git.git Move "--parent" parsing into generic revision.c library code Not only do we do it in both rev-list.c and git.c, the revision walking code will soon want to know whether we should rewrite parenthood information or not. Signed-off-by: Linus Torvalds Signed-off-by: Junio C Hamano --- diff --git a/git.c b/git.c index 0b40e306..72039c69 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 ee88f567..22141e2b 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 c2a95aab..1224a2de 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 61e6bc9f..0caeecf0 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;