On Fri, Oct 20, 2023 at 1:14 PM Karthik Nayak <karthik.188@xxxxxxxxx> wrote: > I'm not entirely sure what the best path to take here to be honest. I will look > and see if there are any bits where overlapping doesn't cause any issues > in the meantime. Was trying to use bit number 12, which coincides METAINFO_SHOWN in builtin/blame.c. >From skimming over the code, METAINFO_SHOWN is used only within blame.c and there should not be collisions here since blame.c doesn't set the do_not_die_on_missing_objects bit either. The tests seem to pass here too [1]. This could be the potential solution here, Junio, what do you think? I could send another version if this approach looks good. [1] https://gitlab.com/gitlab-org/git/-/jobs/5339132966 Diff against the tip of v3: diff --git a/object.h b/object.h index b76830fce1..0cb8c02b95 100644 --- a/object.h +++ b/object.h @@ -62,7 +62,7 @@ void object_array_init(struct object_array *array); /* * object flag allocation: - * revision.h: 0---------10 15 22------28 + * revision.h: 0---------10 12 15 22------27 * fetch-pack.c: 01 67 * negotiator/default.c: 2--5 * walker.c: 0-2 @@ -82,7 +82,7 @@ void object_array_init(struct object_array *array); * builtin/show-branch.c: 0-------------------------------------------26 * builtin/unpack-objects.c: 2021 */ -#define FLAG_BITS 29 +#define FLAG_BITS 28 #define TYPE_BITS 3 diff --git a/revision.h b/revision.h index d3c1ca0f4e..d2de9d65e4 100644 --- a/revision.h +++ b/revision.h @@ -38,6 +38,9 @@ #define PATCHSAME (1u<<9) #define BOTTOM (1u<<10) +/* WARNING: This is also used as METAINFO_SHOWN in builtin/blame.c. */ +#define MISSING (1u<<12) + /* WARNING: This is also used as REACHABLE in commit-graph.c. */ #define PULL_MERGE (1u<<15) @@ -53,7 +56,6 @@ #define ANCESTRY_PATH (1u<<27) #define ALL_REV_FLAGS (((1u<<11)-1) | NOT_USER_GIVEN | TRACK_LINEAR | PULL_MERGE) -#define MISSING (1u<<28) #define DECORATE_SHORT_REFS 1 #define DECORATE_FULL_REFS 2