revision: rename bit to do_not_die_on_missing_objects

The bit `do_not_die_on_missing_tree` is used in revision.h to ensure the
revision walker does not die when encountering a missing tree. This is
currently exclusively set within `builtin/rev-list.c` to ensure the
`--missing` option works with missing trees.

In the upcoming commits, we will extend `--missing` to also support
missing commits. So let's rename the bit to
`do_not_die_on_missing_objects`, which is object type agnostic and can
be used for both trees/commits.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Karthik Nayak
2023-10-26 12:11:07 +02:00
committed by Junio C Hamano
parent 922cc26e41
commit ca556f4707
4 changed files with 12 additions and 11 deletions

View File

@ -298,7 +298,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
struct rev_info revs; struct rev_info revs;
repo_init_revisions(the_repository, &revs, prefix); repo_init_revisions(the_repository, &revs, prefix);
revs.do_not_die_on_missing_tree = 1; revs.do_not_die_on_missing_objects = 1;
revs.ignore_missing = 1; revs.ignore_missing = 1;
revs.ignore_missing_links = 1; revs.ignore_missing_links = 1;
if (verbose) if (verbose)

View File

@ -561,7 +561,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
} }
if (arg_missing_action) if (arg_missing_action)
revs.do_not_die_on_missing_tree = 1; revs.do_not_die_on_missing_objects = 1;
argc = setup_revisions(argc, argv, &revs, &s_r_opt); argc = setup_revisions(argc, argv, &revs, &s_r_opt);

View File

@ -177,7 +177,7 @@ static void process_tree(struct traversal_context *ctx,
is_promisor_object(&obj->oid)) is_promisor_object(&obj->oid))
return; return;
if (!revs->do_not_die_on_missing_tree) if (!revs->do_not_die_on_missing_objects)
die("bad tree object %s", oid_to_hex(&obj->oid)); die("bad tree object %s", oid_to_hex(&obj->oid));
} }

View File

@ -212,18 +212,19 @@ struct rev_info {
/* /*
* Blobs are shown without regard for their existence. * Blobs are shown without regard for their existence.
* But not so for trees: unless exclude_promisor_objects * But not so for trees/commits: unless exclude_promisor_objects
* is set and the tree in question is a promisor object; * is set and the tree in question is a promisor object;
* OR ignore_missing_links is set, the revision walker * OR ignore_missing_links is set, the revision walker
* dies with a "bad tree object HASH" message when * dies with a "bad <type> object HASH" message when
* encountering a missing tree. For callers that can * encountering a missing object. For callers that can
* handle missing trees and want them to be filterable * handle missing trees/commits and want them to be filterable
* and showable, set this to true. The revision walker * and showable, set this to true. The revision walker
* will filter and show such a missing tree as usual, * will filter and show such a missing object as usual,
* but will not attempt to recurse into this tree * but will not attempt to recurse into this tree/commit
* object. * object. The revision walker will also set the MISSING
* flag for such objects.
*/ */
do_not_die_on_missing_tree:1, do_not_die_on_missing_objects:1,
/* for internal use only */ /* for internal use only */
exclude_promisor_objects:1; exclude_promisor_objects:1;