Fix parent rewriting in --early-output
commit7dc0fe3be5c949e83e96a1b829be0e72eafffb47
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Nov 2007 07:16:08 +0000 (12 23:16 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Nov 2007 11:59:37 +0000 (14 03:59 -0800)
tree5e4d44177d7c91e3dd2bb23d126160c1f66cb693
parent53b2c823f6e862e0c83a4a25bab43e8c32e9c289
Fix parent rewriting in --early-output

We cannot tell a node that has been checked and found not to be
interesting (which does not have the TREECHANGE flag) from a
node that hasn't been checked if it is interesting or not,
without relying on something else, such as object->parsed.

But an object can get the "parsed" flag for other reasons.
Which means that "TREECHANGE" has the wrong polarity.

This changes the way how the path pruning logic marks an
uninteresting commits.  From now on, we consider a commit
interesting by default, and explicitly mark the ones we decided
to prune.  The flag is renamed to "TREESAME".

Then, this fixes the logic to show the early output with
incomplete pruning.  It basically says "a commit that has
TREESAME set is kind-of-UNINTERESTING", but obviously in a
different way than an outright UNINTERESTING commit.  Until we
parse and examine enough parents to determine if a commit
becomes surely "kind-of-UNINTERESTING", we avoid rewriting
the ancestry so that later rounds can fix things up.

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