Junio C Hamano <gitster@xxxxxxxxx> writes: >> Fix the error by emitting a warning when the resolve-undo list mentions >> objects that do not exist and then ignoring the nonexistent object. > > ... this approach is about. I think it is backwards to sweep the > problem under the rug without fixing the underlying problem. > > We should instead be removing the reference that is no longer even > usable for the purpose of resolve-undo, e.g. when "rerere forget > <pathspec>" reads from the resolve-undo extension to recreate the > conflicts. Ah, I take half of it back. "instead" -> "in addition". The patch corresponds to revision.c::handle_one_reflog_commit() that skips the object referenced by a reflog entry that no longer exists as part of the solution to the same problem as "reflog --stale-fix" solved, and needs to be an integral half of the solution to the "older gc lose blobs referenced by resolve-undo extension" problem. And the patch goes in the right direction. It is a bit sad that it now has to do parse_object() but in the normal case, the object referenced should be a blob that exists, for which the cost of parsing it would be none (just setting .parsed member to true), so it should be OK. Thanks. Will queue.