reflog expire --stale-fix: be generous about missing objects
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 10 Feb 2021 16:11:38 +0000 (16:11 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Feb 2021 17:21:52 +0000 (09:21 -0800)
commitc809798b2acf1afdeeea02a9175677590ad8d689
tree4731a8efe62e34f2df25e0c04ab17e192769af97
parentc6102b758572c7515f606b2423dfe38934fe6764
reflog expire --stale-fix: be generous about missing objects

Whenever a user runs `git reflog expire --stale-fix`, the most likely
reason is that their repository is at least _somewhat_ corrupt. Which
means that it is more than just possible that some objects are missing.

If that is the case, that can currently let the command abort through
the phase where it tries to mark all reachable objects.

Instead of adding insult to injury, let's be gentle and continue as best
as we can in such a scenario, simply by ignoring the missing objects and
moving on.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reflog.c
t/t1410-reflog.sh