Изменение одного символа в файле приводит к тому, что MSysGit думает, что весь файл изменился
У меня есть Git-репозиторий, содержащий код C #, и яя бегуMSysGit
на винде.
core.autocrlf
включен, и ям, используя.gitattributes
отэтот вопрос, и я "перенормируется» мой репо, как упоминалось в нижней частиэто руководство Github.
Теперь длянемного из.cs файлы в моем хранилище, если я изменю хотя бы один символ,MSysGit
думает, что весь файл изменился.
Я клонировал хранилище свежим. Сначала я попытался отредактировать файл в Visual Studio, но затем попытался открыть его вSciTE который показывает мне конец строки и символы табуляции, а также я верю, что он не сделает ничего странного с файлом (например, поменяет кодировку).
Итак, я клонирую хранилище свежим
$ git clone git clone [email protected]:my-repo.v2.git
$ cd my-repo/
Я проверяю хранилище и файл:
$ git status
# On branch master
nothing to commit (working directory clean)
$ git diff path/to/myfile.cs
$
Я открываю файл в SciTE (обратите внимание, что окончания строкCRLF
и там нет вкладок)
using System;
using System.Collections.Generic;
...
и измените один символ (и обратите внимание, чтоCRLF
и никакие вкладки еще не верны)
using System;
!using System.Collections.Generic;
...
а теперь мерзавец думает всеs изменилось:
$ git diff path/to/myfile.cs
diff --git a/path/to/myfile.cs b/Dpath/to/myfile.cs
--- a/path/to/myfile.cs
+++ b/path/to/myfile.cs
@@ -1,116 +1,116 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Microsoft.Practices.EnterpriseLibrary.Data;
-using DataModel.Models;
-using DataModel.Mappers.Interfaces;
-using System.Data.Common;
-using System.Data;
...
Нормальная программа сравнения нея думаю, что два файла такие разные, иgit diff
на Unix не делаетне думаю, что онислишком разные, ноmsysgit
делает.
Кто-нибудь когда-либо сталкивался с этим раньше или есть какие-либо идеи?