Our development shop is using Stash and migrated from a TFS configuration several months ago. We've noticed a pervasive issue with whitespace and line endings (showing entire files changed) even though we have .gitattributes files in every repository *AND* we have everyone using the same line ending handling files. We're entirely windows-based with everyone using SourceTree, Github for Windows, or TortoiseGit for the most part. Some products are having enormous issues and others don't have any issues at all.
Anecdotally, I'm told the people who suffer the worst are those who are doing a lot with feature branches. Like one of our products often has 3 - 5 feature branches in development at any point in time to be merged at some point in the future (i.e. we do dev work for a feature that will be implemented at some arbitrary point in the future or not at all dependent on how it turns out).
All our machines are Windows 7 64-bit.
We have everyone configured with:
git config --global core.autocrlf true
Our stock .gitattributes file is the following and is in the root of every single repository:
* text=auto
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.bmp binary
*.gif binary
*.jpg binary
*.png binary
*.ascx text
*.cmd text
*.coffee text
*.config text
*.cs text diff=csharp
*.csproj text merge=union
*.css text
*.cshtml text
*.htm text
*.html text
*.htm text
*.js text
*.msbuild text
*.resx text merge=union
*.ruleset text
*.Stylecop text
*.sql text
*.targets text
*.tt text
*.txt text
*.vb text
*.vbhtml text
*.vbproj text merge=union
*.xml text
*.xunit text
*.sln text eol=crlf merge=union
Can anyone shed any light or explain why we might be having whitespace issues?