When core.ignorecase, check Status for files case-insensitively #724
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #586 by making
Status#changed?
case-insensitive whencore.ignoreCase
is set. Also solve the matching unreported issues forStatus#added
,Status#deleted
, andStatus#untracked
.I did run into a bit of an issue trying to write thorough tests for these, because it turns out that git itself doesn't support setting
core.ignoreCase
to a value that doesn't match the behavior of the file-system; that option is provided so you can tell git how the file-system is going to act, not so you can control git's behavior! In the tests here, I do break that guideline, but because I don't actually rename any files,git
doesn't have trouble - just don't try to make it test the case that was actually reported, because that will not work.