log: fix --max-count when used together with -S or -G

The --max-count limit is implemented by counting revisions in
get_revision(), but the -S and -G take effect later when running diff.
Hence "--max-count=10 -Sfoo" meant "examine the 10 first revisions, and
out of them, show only those changing the occurences of foo", not "show 10
revisions changing the occurences of foo".

In case the commit isn't actually shown, cancel the decrement of
max_count.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Matthieu Moy
2011-03-09 21:52:15 +01:00
committed by Junio C Hamano
parent d0f7dcbf42
commit 251df09be3
5 changed files with 26 additions and 1 deletions

View File

@@ -0,0 +1,2 @@
$ git log -SF master --max-count=0
$

View File

@@ -0,0 +1,7 @@
$ git log -SF master --max-count=1
commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:02:00 2006 +0000
Third
$

View File

@@ -0,0 +1,7 @@
$ git log -SF master --max-count=2
commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:02:00 2006 +0000
Third
$