author | Junio C Hamano <gitster@pobox.com> | |
Wed, 28 Jan 2009 07:19:30 +0000 (23:19 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 28 Jan 2009 19:00:28 +0000 (11:00 -0800) | ||
commit | aeeae1b771020f1ac6692f89563e3f8689c704e7 | |
tree | 8c8895b475b98da4a88659afeec5c64ded8c4c44 | tree | snapshot |
parent | 02322e1619dc537dc48650761f6c9bae883612a7 | commit | diff |
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>
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 | diff | blob | history | |
t/t5519-push-alternates.sh | diff | blob | history |