revision: mark commit parents as NOT_USER_GIVEN
commitb2025da38be94568bf046c2b8520fe87bcbb5c3d
authorPatrick Steinhardt <ps@pks.im>
Fri, 9 Apr 2021 11:27:57 +0000 (9 13:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 11 Apr 2021 06:03:20 +0000 (10 23:03 -0700)
tree763e0d6e65bce99ee6c722467a86738f46dbf30c
parenta812789c264b1cabd8e5a22b410a9004781a81c9
revision: mark commit parents as NOT_USER_GIVEN

The NOT_USER_GIVEN flag of an object marks whether a flag was explicitly
provided by the user or not. The most important use case for this is
when filtering objects: only objects that were not explicitly requested
will get filtered.

The flag is currently only set for blobs and trees, which has been fine
given that there are no filters for tags or commits currently. We're
about to extend filtering capabilities to add object type filter though,
which requires us to set up the NOT_USER_GIVEN flag correctly -- if it's
not set, the object wouldn't get filtered at all.

Mark unseen commit parents as NOT_USER_GIVEN when processing parents.
Like this, explicitly provided parents stay user-given and thus
unfiltered, while parents which get loaded as part of the graph walk
can be filtered.

This commit shouldn't have any user-visible impact yet as there is no
logic to filter commits yet.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c
revision.h