Re: [PATCH] reflog expire --stale-fix: be generous about missing objects
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 12, 2021, 19:35 UTC
- Message-ID
- <xmqqy2ftuli9.fsf@gitster.c.googlers.com>
- In-Reply-To
- <nycvar.QRO.7.76.6.2102121702120.29765@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 15 quoted lines
>> 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.