From: Junio C Hamano Date: Fri, 12 Feb 2021 19:35:58 GMT Subject: Re: [PATCH] reflog expire --stale-fix: be generous about missing objects Message-ID: In-Reply-To: Johannes Schindelin writes: >> Possibly the correct answer here is "turn off reflogs in new.git", but >> they are sometimes useful, and things _mostly_ work (for history that >> doesn't rewind, or where the rewound bits are specific to new.git). So >> it's useful to be able to run something like "reflog expire --stale-fix" >> to clear out the occasional problem. >> >> (A careful reader will note that objects mentioned only in the index >> have a similar problem; but again, those tend to be local to new.git, >> and don't exist at all in a server context). > > I want to add the experience with that half year during which `git gc` > with worktrees was broken, as it would happily ignore the reflogs of the > worktree-specific `HEAD`s, all except the one from the worktree from which > `git gc` was run. That was some fun time, and `--stale-fix` was a life > saver. The option was invented for a specific case, but if its "fix" applies for breakages caused by more recent bugs and user induced actions, I would agree that that it gives us a good reason to keep it around. I have to wonder if the explanation in the documentation for the option needs to be made less specific to the originally motivating case, though. Thanks.