Re: Possible bug with git restore
From: Junio C Hamano <hidden>
Date: 2020-08-22 19:36:18
Jeff King [off-list ref] writes:
So I think this inconsistency in pathspec matching between trees and the index has probably existed in git-checkout for ages (and I guess people don't do wildcards with trees often enough for anybody to have noticed). But it didn't cause the index-deletion problem, because that only appeared more recently with the --no-overlay mode. That's the default for restore, but you can trigger the problem with checkout, too: $ git reset --hard $ git checkout --no-overlay HEAD^ '*.hpp' Updated 0 paths from 2668463 $ git status On branch master Changes to be committed: deleted: incl/test_file.hpp
The --no-overlay mode is an enhancement added on top of reasonably aged codebase relatively recently. Most of the core code in checkout dates back to early 2008, while --no-overlay was done as a long-overdue-afterthought in early last year. And it is not all that surprising that this issue took a long time to be discovered. Thank you all for finding, analysing and fixing it promptly.