]> git.ipfire.org Git - thirdparty/git.git/commitdiff
revision: rename bit to `do_not_die_on_missing_objects`
authorKarthik Nayak <karthik.188@gmail.com>
Thu, 26 Oct 2023 10:11:07 +0000 (12:11 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Nov 2023 03:07:18 +0000 (12:07 +0900)
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>
builtin/reflog.c
builtin/rev-list.c
list-objects.c
revision.h

index df63a5892e71057e342792147fe5d30e13603952..9e369a59776b7933dd95d53828a44731e7346f5c 100644 (file)
@@ -298,7 +298,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
                struct rev_info revs;
 
                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_links = 1;
                if (verbose)
index ff715d6918f004265cf8801879f13fc189f09709..ea77489c38aa4be89c10a0ca44b77a59717befdc 100644 (file)
@@ -561,7 +561,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
        }
 
        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);
 
index c25c72b32c323c18da214fb7c0f5935556bb97a4..47296dff2f23bdde5bcb19e65a2714acb4f108d4 100644 (file)
@@ -177,7 +177,7 @@ static void process_tree(struct traversal_context *ctx,
                    is_promisor_object(&obj->oid))
                        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));
        }
 
index 50091bbd13f07ffd633446c6e0c392c01bd4152f..c73c92ef40c856e24e8fb5f6c2523275f46e992f 100644 (file)
@@ -212,18 +212,19 @@ struct rev_info {
 
                        /*
                         * 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;
                         * OR ignore_missing_links is set, the revision walker
-                        * dies with a "bad tree object HASH" message when
-                        * encountering a missing tree. For callers that can
-                        * handle missing trees and want them to be filterable
+                        * dies with a "bad <type> object HASH" message when
+                        * encountering a missing object. For callers that can
+                        * handle missing trees/commits and want them to be filterable
                         * and showable, set this to true. The revision walker
-                        * will filter and show such a missing tree as usual,
-                        * but will not attempt to recurse into this tree
-                        * object.
+                        * will filter and show such a missing object as usual,
+                        * but will not attempt to recurse into this tree/commit
+                        * 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 */
                        exclude_promisor_objects:1;