Code

revision walker: mini clean-up
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 5 Nov 2007 21:22:34 +0000 (13:22 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 Nov 2007 02:19:28 +0000 (18:19 -0800)
commit53b2c823f6e862e0c83a4a25bab43e8c32e9c289
treefef43cbdbaccd2ff8e7e7795de5722846bf03bd0
parent252a7c02354a3e2825cfde3c5053a04acc07be9c
revision walker: mini clean-up

This removes the unnecessary indirection of "revs->prune_fn",
since that function is always the same one (or NULL), and there
is in fact not even an abstraction reason to make it a function
(i.e. its not called from some other file and doesn't allow us
to keep the function itself static or anything like that).

It then just replaces it with a bit that says "prune or not",
and if not pruning, every commit gets TREECHANGE.

That in turn means that

 - if (!revs->prune_fn || (flags & TREECHANGE))
 - if (revs->prune_fn && !(flags & TREECHANGE))

just become

 - if (flags & TREECHANGE)
 - if (!(flags & TREECHANGE))

respectively.

Together with adding the "single_parent()" helper function, the "complex"
conditional now becomes

if (!(flags & TREECHANGE) && rev->dense && single_parent(commit))
continue;

Also indirection of "revs->dense" checking is thrown away the
same way, because TREECHANGE bit is set appropriately now.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-log.c
builtin-rev-list.c
commit.h
revision.c
revision.h