rev-list: introduce --count option
Add a --count option that, instead of actually listing the commits, merely counts them. This is mostly geared towards script use, and to this end it acts specially when used with --left-right: it outputs the left and right counts separately. Previously, scripts would have to run a shell loop or small inline script over to achieve the same. (Without --left-right, a simple |wc -l does the job.) Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
3499cb1ae7
commit
f69c501832
@ -50,6 +50,15 @@ static void show_commit(struct commit *commit, void *data)
|
||||
|
||||
graph_show_commit(revs->graph);
|
||||
|
||||
if (revs->count) {
|
||||
if (commit->object.flags & SYMMETRIC_LEFT)
|
||||
revs->count_left++;
|
||||
else
|
||||
revs->count_right++;
|
||||
finish_commit(commit, data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (info->show_timestamp)
|
||||
printf("%lu ", commit->date);
|
||||
if (info->header_prefix)
|
||||
@ -400,5 +409,12 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
|
||||
quiet ? finish_object : show_object,
|
||||
&info);
|
||||
|
||||
if (revs.count) {
|
||||
if (revs.left_right)
|
||||
printf("%d\t%d\n", revs.count_left, revs.count_right);
|
||||
else
|
||||
printf("%d\n", revs.count_left + revs.count_right);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user