summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-03-30 16:52:42 -0800
committerJunio C Hamano <junkio@cox.net>2006-03-31 16:24:48 -0800
commit7b0c996679e975b666fd27c922e1e0837b611c98 (patch)
treeeee4263bf333433f8062ae7137a6781c4f5a7fe2
parent8eef8e09cee1691faad2159ebdab7ca3b232d26b (diff)
downloadgit-7b0c996679e975b666fd27c922e1e0837b611c98.tar.gz
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 <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--git.c6
-rw-r--r--rev-list.c7
-rw-r--r--revision.c4
-rw-r--r--revision.h3
4 files changed, 8 insertions, 12 deletions
diff --git a/git.c b/git.c
index 0b40e3060d..72039c69cb 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 ee88f567a7..22141e2b04 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 c2a95aabef..1224a2de62 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 61e6bc9f4b..0caeecf00f 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;