Code

revision traversal: allow UNINTERESTING objects to be missing
authorJunio C Hamano <gitster@pobox.com>
Wed, 28 Jan 2009 07:19:30 +0000 (23:19 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 28 Jan 2009 19:00:28 +0000 (11:00 -0800)
commitaeeae1b771020f1ac6692f89563e3f8689c704e7
tree8c8895b475b98da4a88659afeec5c64ded8c4c44
parent02322e1619dc537dc48650761f6c9bae883612a7
revision traversal: allow UNINTERESTING objects to be missing

Most of the existing codepaths were meant to treat missing uninteresting
objects to be a silently ignored non-error, but there were a few places
in handle_commit() and add_parents_to_list(), which are two key functions
in the revision traversal machinery, that cared:

 - When a tag refers to an object that we do not have, we barfed.  We
   ignore such a tag if it is painted as UNINTERESTING with this change.

 - When digging deeper into the ancestry chain of a commit that is already
   painted as UNINTERESTING, in order to paint its parents UNINTERESTING,
   we barfed if parse_parent() for a parent commit object failed.  We can
   ignore such a parent commit object.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c
t/t5519-push-alternates.sh