Reputation: 31
I have a large VS2017 solution that is stored on GitHub. In my local working copy of the repository, there are several files that are marked with the ? icon overlay which indicates that they are non-versioned files. However, these files are in the repository and are up to date. If I commit changes to other files, these files do not show up in the No Versioned list or if I create a clone of the repository from GitHub, these files have the proper icon overlay.
Any ideas why these files are shown as Not Versioned in one local repository and not another?
Upvotes: 3
Views: 2607
Reputation: 34042
Please make sure that the case of the filename on the filesystem match the casing in the repository.
Background
Even if Windows ignores the case in paths, Git does not (completely) - even if you enable core.ignorecase
. git status
indeed does ignore the case, however, if you try to get the log on a file with a different casing, the log will be empty.
Because of this in TortoiseGit 2.4.0 the icon overlays were made case sensitive. So if the overlay icon shows that the file is versioned, the log won't be empty and if the file is shown as unversioned you get an indication that something is curious.
How to fix
Rename the files in the filesystem (some applications might tend to delete and re-create the files with different casing) OR use the TortoiseGit rename function to fix the casing in the repository.
Since TortoiseGit 2.5.0 you can configure TortoiseGit to ignore the case when calculating the overlay icons again by enabling the advanced option OverlaysCaseSensitive
(cf. issue #2980).
Upvotes: 4