Leandro Gomez
Leandro Gomez

Reputation: 59

git - Visual studio team explorer is showing changes that are not actually there

I have been experimenting with git-svn and git integration within Visual Studio 2013 for a short period of time. One issue I'm having is that Visual studio is showing many files as part of the "Included changes" (i.e "modified" files) when in fact they have no changes.

At first glance, research suggest that similar problems appear when line-ending issues exist but:

A) Git in the console runs fine (i.e. git status shows no changes exist).

B) Git line ending normalization has been turned off (both by "git config --global core.autocrlf false" and a "* text=off line" in the .gitattributes file)

Any ideas?

Upvotes: 3

Views: 1734

Answers (2)

sanme98
sanme98

Reputation: 572

From @Vonc answer, I had checked and found even VS 2015 also still using libgit2, you can confirm it on the "%PROGRAMFILES(x86)%\Microsoft Visual Studio 14.0\Web\External\git" folder.

To confirm is it the files modification is real in Git-SCM, just use the standard Git and run the command below to see the changes.

git diff --name-status

Most likely you will see no changes.

Btw, I found VS 2017 is switched to use standard Git-SCM. If you open using this version, it will don't have any issue.

Upvotes: 0

VonC
VonC

Reputation: 1323963

First:

  • Use the latest 2.13.2 version of Git (unless Visual Studio 2013 is still based on libgit2, but even though, check if the issue persists in command line, with Git 2.13.2)
  • make sure eol is not involved in your current local repo by triggering a renormalization:

    $ rm .git/index     # Remove the index to re-scan the working directory
    $ git add .
    $ git status        # Check if files are still "modified"
    

Second, check the nature of those "invisible" changes with:

git diff --word-diff-regex=.
# or
git -c color.diff.whitespace="red reverse" diff -R -- afile

Third, check if this is a permission issue (you can unset other core.filemode settings first):

git config core.filemode false
# renormalize as shown above.

Upvotes: 1

Related Questions