I took the first patch of Han Young's original series and implemented the fix suggested by Jonathan[1]. While all of his ideas would've worked, the first one ends up being the simplest to implement at the cost of minor network resources but saves on CPU compared to the other ideas. This series does not fix repositories that were previously broken by this issue, but broken repositories can easily fix themselves by refetching the missing commit, so there isn't much benefit adding preventative measures to gc. [1] https://lore.kernel.org/git/20240813004508.2768102-1-jonathantanmy@xxxxxxxxxx/ Calvin Wan (1): fetch-pack.c: do not declare local commits as "have" in partial repos Han Young (1): packfile: split promisor objects oidset into two fetch-pack.c | 17 ++++++++++++++--- packfile.c | 24 +++++++++++++++--------- packfile.h | 7 ++++++- t/t5616-partial-clone.sh | 29 +++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 13 deletions(-) -- 2.46.0.792.g87dc391469-goog