C# コードを含む git リポジトリがあり、MSysGit
Windows で実行しています。
core.autocrlf
がオンになっており、この質問の を使用してい.gitattributes
ます。この Github ガイドの下部に記載されているように、リポジトリを「再正規化」しました。
リポジトリ内の一部の.csファイルで、1 文字でも変更するMSysGit
と、ファイル全体が変更されたと見なされます。
リポジトリを新しく複製しました。最初にVisual Studioでファイルを編集しようとしましたが、SciTEで開いてみると、行末とタブ文字が表示され、ファイルに奇妙なことをしないと信じています(エンコーディングの変更など)。
したがって、リポジトリを新しく複製します。
$ git clone git clone git@git.assembla.com: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
1文字を変更します(そして、タブがまだtrueではないことに注意してください):
using System;
!using System.Collections.Generic;
...
そして今、gitはすべてが変更されたと考えています:
$ 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 @@
-<U+FEFF>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;
...
通常の diff プログラムは、2 つのファイルがそれほど異なっているとgit diff
は考えません。Unix では、あまり異なっているとは考えていませんが、msysgit
そうです。
これまでにこれに遭遇したことはありますか、何かアイデアはありますか?