Tengo un repository git que contiene el código C # y estoy ejecutando MSysGit
en Windows.
core.autocrlf
está activado, y estoy usando los .gitattributes
de esta pregunta , y "renormalicé" mi repository como se menciona en la parte inferior de esta guía de Github .
Ahora, para algunos de los files .cs en mi repository, si cambio incluso un carácter, MSysGit
piensa que todo el file ha cambiado.
He clonado el repository nuevo. Intenté editar el file primero en Visual Studio, pero luego intenté abrirlo en SciTE, que me muestra los caracteres de final de línea y tabulación, y también confío en que no haga nada extraño al file (como cambiar la encoding).
Por lo tanto, cloné el repository nuevo:
$ git clone git clone git@git.assembla.com:my-repo.v2.git $ cd my-repo/
Reviso el repository y el file:
$ git status # On branch master nothing to commit (working directory clean) $ git diff path/to/myfile.cs $
Abro el file en SciTE (tenga en count que las terminaciones de línea son CRLF
y no hay tabs):
using System; using System.Collections.Generic; ...
y cambie un caracter (y tenga en count que CRLF
y sin tabs siguen siendo verdaderas):
using System; !using System.Collections.Generic; ...
y ahora git piensa que todo ha cambiado:
$ 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; ...
Un progtwig normal de diferencias no cree que los dos files sean tan diferentes, y git diff
en Unix no cree que sean demasiado diferentes, pero msysgit
sí.
¿Alguien alguna vez se encuentra con esto antes o tiene alguna idea?
Algunas cosas que pueden hacer que Git muestre todo el file como cambiado: