summaryrefslogtreecommitdiff
path: root/rev-list.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-30 19:30:07 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-30 19:30:07 -0700
commit97658004c311c54e2e4755dc545a9da261bd1441 (patch)
tree98b7bcb9b879bba7de6eb64a1412563632ca224d /rev-list.c
parent8906300f65a3b0c3e061af9d2c7ba48fedfa26a4 (diff)
downloadgit-97658004c311c54e2e4755dc545a9da261bd1441.tar.gz
git-rev-list: add "--parents" command line flag
It makes rev-list show the list of parents, the same way git-rev-tree does (but without the expense).
Diffstat (limited to 'rev-list.c')
-rw-r--r--rev-list.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/rev-list.c b/rev-list.c
index cb1de39f6e..6f76b9dd52 100644
--- a/rev-list.c
+++ b/rev-list.c
@@ -41,7 +41,7 @@ int main(int argc, char **argv)
unsigned char sha1[2][20];
struct commit_list *list = NULL;
struct commit *commit, *end;
- int i, verbose_header = 0;
+ int i, verbose_header = 0, show_parents = 0;
unsigned long max_age = -1;
unsigned long min_age = -1;
int max_count = -1;
@@ -66,6 +66,10 @@ int main(int argc, char **argv)
verbose_header = 1;
continue;
}
+ if (!strcmp(arg, "--parents")) {
+ show_parents = 1;
+ continue;
+ }
if (nr_sha > 2 || get_sha1(arg, sha1[nr_sha]))
usage(rev_list_usage);
@@ -116,7 +120,15 @@ int main(int argc, char **argv)
break;
if (max_count != -1 && !max_count--)
break;
- printf("%s\n", sha1_to_hex(commit->object.sha1));
+ printf("%s", sha1_to_hex(commit->object.sha1));
+ if (show_parents) {
+ struct commit_list *parents = commit->parents;
+ while (parents) {
+ printf(" %s", sha1_to_hex(parents->item->object.sha1));
+ parents = parents->next;
+ }
+ }
+ putchar('\n');
if (verbose_header)
printf("%s%c", commit->buffer, 0);
}