1

J'utilise git 1.7.2.3 via cygwin sur Windows 7 et de voir des artefacts étranges apparaissant dans certains de mes fichiers source lors du changement de branche. git status rapports tout comme inchangé pourtant ils sont des personnages fous. J'ai confirmé sur GitHub que les fichiers sont comme ils devraient être dans le repo.Caractères étrangers apparaissant dans des fichiers Git-gérés

ma copie:

਍        ⼀⼀⼀ 㰀猀甀洀洀愀爀礀㸀ഀഀ 
     /// Set up method. 
਍        ⼀⼀⼀ 㰀⼀猀甀洀洀愀爀礀㸀ഀഀ 
     [SetUp] 
਍        瀀甀戀氀椀挀 漀瘀攀爀爀椀搀攀 瘀漀椀搀 匀攀琀甀瀀⠀⤀ഀഀ 
     { 
਍            琀栀椀猀⸀匀挀漀瀀攀 㴀 渀攀眀 吀爀愀渀猀愀挀琀椀漀渀匀挀漀瀀攀⠀⤀㬀ഀഀ 
਍            琀栀椀猀⸀琀攀猀琀䤀琀攀洀 㴀 渀攀眀 嘀椀攀眀䐀漀挀甀洀攀渀琀䠀椀猀琀漀爀礀⠀ ഀഀ 
       625016, 
਍                㔀㜀㤀㤀㘀Ⰰ ഀഀ 
       'T', 
਍                ㌀㐀㠀㌀㔀㈀㤀Ⰰ ഀഀ 
       DateTime.Parse("2003-01-08 09:57:04.957"), 
਍                ㌀Ⰰ ഀഀ 
       "Invoice (PG-PS) - SUPP(11/16/2008)", 
਍                ∀䘀䤀一䄀一䌀䔀∀Ⰰ ഀഀ 
       DateTime.Parse("2008-04-11 11:15:07.770"), 
਍                䀀∀尀尀䐀伀匀䬀尀䌀䜀䐀伀䌀匀尀㌀㜀㐀㤀㄀㐀尀㐀㘀 㐀㘀尀戀椀氀猀氀椀瀀开㄀ 㠀㄀㘀㐀㠀⸀搀漀挀∀⤀㬀ഀഀ 
     } 

Repo Copie:

 /// <summary> 
     /// Set up method. 
     /// </summary> 
     [SetUp] 
     public override void Setup() 
     { 
      this.Scope = new TransactionScope(); 

      this.testItem = new ViewDocumentHistory( 
       625016, 
       57996, 
       'T', 
       3483529, 
       DateTime.Parse("2003-01-08 09:57:04.957"), 
       3, 
       "Invoice (PG-PS) - SUPP(11/16/2008)", 
       "FINANCE", 
       DateTime.Parse("2008-04-11 11:15:07.770"), 
       @"\\DOSK\CGDOCS\374914\46046\bilslip_1081648.doc"); 
     } 

J'utilise également un fichier .gitattributes pour assurer les fins de ligne sont corrects puisque nous développons sous Windows.

*.cs  eol=crlf text 
*.csproj eol=crlf text 
*.sln  eol=crlf text 
*.xml  eol=crlf text 

Le text est un ajout par moi pour tenter de résoudre le problème git diff interprétait le fichier sous forme binaire quand je l'ai modifié. N'a eu aucun effet.

Cela se produit également lors de nouvelles vérifications en 1.7.2.3 mais pas en 1.6.5.1 (mysysgit) pour autant que je sache. La mise en garde est que 1.6 ne prend pas en charge .gitattributes dont j'ai besoin pour travailler sur Windows. Cela semble être un bug assez nouveau et je n'ai pas changé de configuration.

Quelqu'un a-t-il une idée de ce qui pourrait être la cause?


modifier:

hexdump -C ViewDocumentHistoryTests.cs | sed -n "130,212p"

000008d0 00 20 00 20 00 2f 00 2f 00 2f 00 20 00 3c 00 73 |. . ./././. .<.s| 
000008e0 00 75 00 6d 00 6d 00 61 00 72 00 79 00 3e 00 0d |.u.m.m.a.r.y.>..| 
000008f0 00 0d 0a 00 20 00 20 00 20 00 20 00 20 00 20 00 |.... . . . . . .| 
00000900 20 00 20 00 2f 00 2f 00 2f 00 20 00 53 00 65 00 | . ./././. .S.e.| 
00000910 74 00 20 00 75 00 70 00 20 00 6d 00 65 00 74 00 |t. .u.p. .m.e.t.| 
00000920 68 00 6f 00 64 00 2e 00 0d 00 0d 0a 00 20 00 20 |h.o.d........ . | 
00000930 00 20 00 20 00 20 00 20 00 20 00 20 00 2f 00 2f |. . . . . . ././| 
00000940 00 2f 00 20 00 3c 00 2f 00 73 00 75 00 6d 00 6d |./. .<./.s.u.m.m| 
00000950 00 61 00 72 00 79 00 3e 00 0d 00 0d 0a 00 20 00 |.a.r.y.>...... .| 
00000960 20 00 20 00 20 00 20 00 20 00 20 00 20 00 5b 00 | . . . . . . .[.| 
00000970 53 00 65 00 74 00 55 00 70 00 5d 00 0d 00 0d 0a |S.e.t.U.p.].....| 
00000980 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000990 00 70 00 75 00 62 00 6c 00 69 00 63 00 20 00 6f |.p.u.b.l.i.c. .o| 
000009a0 00 76 00 65 00 72 00 72 00 69 00 64 00 65 00 20 |.v.e.r.r.i.d.e. | 
000009b0 00 76 00 6f 00 69 00 64 00 20 00 53 00 65 00 74 |.v.o.i.d. .S.e.t| 
000009c0 00 75 00 70 00 28 00 29 00 0d 00 0d 0a 00 20 00 |.u.p.(.)...... .| 
000009d0 20 00 20 00 20 00 20 00 20 00 20 00 20 00 7b 00 | . . . . . . .{.| 
000009e0 0d 00 0d 0a 00 20 00 20 00 20 00 20 00 20 00 20 |..... . . . . . | 
000009f0 00 20 00 20 00 20 00 20 00 20 00 20 00 74 00 68 |. . . . . . .t.h| 
00000a00 00 69 00 73 00 2e 00 53 00 63 00 6f 00 70 00 65 |.i.s...S.c.o.p.e| 
00000a10 00 20 00 3d 00 20 00 6e 00 65 00 77 00 20 00 54 |. .=. .n.e.w. .T| 
00000a20 00 72 00 61 00 6e 00 73 00 61 00 63 00 74 00 69 |.r.a.n.s.a.c.t.i| 
00000a30 00 6f 00 6e 00 53 00 63 00 6f 00 70 00 65 00 28 |.o.n.S.c.o.p.e.(| 
00000a40 00 29 00 3b 00 0d 00 0d 0a 00 0d 00 0d 0a 00 20 |.).;........... | 
00000a50 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000a60 00 20 00 20 00 20 00 74 00 68 00 69 00 73 00 2e |. . . .t.h.i.s..| 
00000a70 00 74 00 65 00 73 00 74 00 49 00 74 00 65 00 6d |.t.e.s.t.I.t.e.m| 
00000a80 00 20 00 3d 00 20 00 6e 00 65 00 77 00 20 00 56 |. .=. .n.e.w. .V| 
00000a90 00 69 00 65 00 77 00 44 00 6f 00 63 00 75 00 6d |.i.e.w.D.o.c.u.m| 
00000aa0 00 65 00 6e 00 74 00 48 00 69 00 73 00 74 00 6f |.e.n.t.H.i.s.t.o| 
00000ab0 00 72 00 79 00 28 00 20 00 0d 00 0d 0a 00 20 00 |.r.y.(. ...... .| 
00000ac0 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 | . . . . . . . .| 
00000ad0 20 00 20 00 20 00 20 00 20 00 20 00 20 00 36 00 | . . . . . . .6.| 
00000ae0 32 00 35 00 30 00 31 00 36 00 2c 00 20 00 0d 00 |2.5.0.1.6.,. ...| 
00000af0 0d 0a 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |... . . . . . . | 
00000b00 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000b10 00 20 00 35 00 37 00 39 00 39 00 36 00 2c 00 20 |. .5.7.9.9.6.,. | 
00000b20 00 0d 00 0d 0a 00 20 00 20 00 20 00 20 00 20 00 |...... . . . . .| 
00000b30 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 | . . . . . . . .| 
00000b40 20 00 20 00 20 00 27 00 54 00 27 00 2c 00 20 00 | . . .'.T.'.,. .| 
00000b50 0d 00 0d 0a 00 20 00 20 00 20 00 20 00 20 00 20 |..... . . . . . | 
00000b60 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000b70 00 20 00 20 00 33 00 34 00 38 00 33 00 35 00 32 |. . .3.4.8.3.5.2| 
00000b80 00 39 00 2c 00 20 00 0d 00 0d 0a 00 20 00 20 00 |.9.,. ...... . .| 
00000b90 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 | . . . . . . . .| 
00000ba0 20 00 20 00 20 00 20 00 20 00 20 00 44 00 61 00 | . . . . . .D.a.| 
00000bb0 74 00 65 00 54 00 69 00 6d 00 65 00 2e 00 50 00 |t.e.T.i.m.e...P.| 
00000bc0 61 00 72 00 73 00 65 00 28 00 22 00 32 00 30 00 |a.r.s.e.(.".2.0.| 
00000bd0 30 00 33 00 2d 00 30 00 31 00 2d 00 30 00 38 00 |0.3.-.0.1.-.0.8.| 
00000be0 20 00 30 00 39 00 3a 00 35 00 37 00 3a 00 30 00 | .0.9.:.5.7.:.0.| 
00000bf0 34 00 2e 00 39 00 35 00 37 00 22 00 29 00 2c 00 |4...9.5.7.".).,.| 
00000c00 0d 00 0d 0a 00 20 00 20 00 20 00 20 00 20 00 20 |..... . . . . . | 
00000c10 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000c20 00 20 00 20 00 33 00 2c 00 20 00 0d 00 0d 0a 00 |. . .3.,. ......| 
00000c30 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 | . . . . . . . .| 
* 
00000c50 22 00 49 00 6e 00 76 00 6f 00 69 00 63 00 65 00 |".I.n.v.o.i.c.e.| 
00000c60 20 00 28 00 50 00 47 00 2d 00 50 00 53 00 29 00 | .(.P.G.-.P.S.).| 
00000c70 20 00 2d 00 20 00 53 00 55 00 50 00 50 00 28 00 | .-. .S.U.P.P.(.| 
00000c80 31 00 31 00 2f 00 31 00 36 00 2f 00 32 00 30 00 |1.1./.1.6./.2.0.| 
00000c90 30 00 38 00 29 00 22 00 2c 00 20 00 0d 00 0d 0a |0.8.).".,. .....| 
00000ca0 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
* 
00000cc0 00 22 00 46 00 49 00 4e 00 41 00 4e 00 43 00 45 |.".F.I.N.A.N.C.E| 
00000cd0 00 22 00 2c 00 20 00 0d 00 0d 0a 00 20 00 20 00 |.".,. ...... . .| 
00000ce0 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 | . . . . . . . .| 
00000cf0 20 00 20 00 20 00 20 00 20 00 20 00 44 00 61 00 | . . . . . .D.a.| 
00000d00 74 00 65 00 54 00 69 00 6d 00 65 00 2e 00 50 00 |t.e.T.i.m.e...P.| 
00000d10 61 00 72 00 73 00 65 00 28 00 22 00 32 00 30 00 |a.r.s.e.(.".2.0.| 
00000d20 30 00 38 00 2d 00 30 00 34 00 2d 00 31 00 31 00 |0.8.-.0.4.-.1.1.| 
00000d30 20 00 31 00 31 00 3a 00 31 00 35 00 3a 00 30 00 | .1.1.:.1.5.:.0.| 
00000d40 37 00 2e 00 37 00 37 00 30 00 22 00 29 00 2c 00 |7...7.7.0.".).,.| 
00000d50 20 00 0d 00 0d 0a 00 20 00 20 00 20 00 20 00 20 | ...... . . . . | 
00000d60 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 |. . . . . . . . | 
00000d70 00 20 00 20 00 20 00 40 00 22 00 5c 00 5c 00 44 |. . . [email protected]".\.\.D| 
00000d80 00 4f 00 53 00 4b 00 5c 00 43 00 47 00 44 00 4f |.O.S.K.\.C.G.D.O| 
00000d90 00 43 00 53 00 5c 00 33 00 37 00 34 00 39 00 31 |.C.S.\.3.7.4.9.1| 
00000da0 00 34 00 5c 00 34 00 36 00 30 00 34 00 36 00 5c |.4.\.4.6.0.4.6.\| 
00000db0 00 62 00 69 00 6c 00 73 00 6c 00 69 00 70 00 5f |.b.i.l.s.l.i.p._| 
00000dc0 00 31 00 30 00 38 00 31 00 36 00 34 00 38 00 2e |.1.0.8.1.6.4.8..| 
00000dd0 00 64 00 6f 00 63 00 22 00 29 00 3b 00 0d 00 0d |.d.o.c.".).;....| 
00000de0 0a 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 |.. . . . . . . .| 
00000df0 20 00 7d 00 0d 00 0d 0a 00 0d 00 0d 0a 00 20 00 | .}........... .| 

Il semble que c'est une sorte de problème d'encodage.

+1

Comment regardez-vous le fichier? Quelle est la sortie de 'hexdump -C' pour ça? (hexdump est dans le paquet util-linux de Cygwin.) – ak2

+0

@ ak2 Visual Studio 2k8, Sublime Texte, bloc-notes et nano (dans cygwin) affichent tous le fichier de façon incorrecte. 'cat' affiche le fichier correctement mais avec des espaces entre chaque caractère. On dirait que c'est une sorte de problème Unicode. –

Répondre

3

Vous enregistrez vos fichiers en tant que UTF-16, l'encodage que les éditeurs de texte Windows appellent de manière trompeuse "Unicode".

UTF-16 n'est pas compatible ASCII et ne fonctionnera donc pas correctement avec l'outil diff utilisé par git. Ce que vous obtenez est un changement d'octet à l'entrée sur chaque nouvelle ligne (probablement dû à la conversion entre les fins de ligne LF et Windows CRLF) provoquant l'alignement à deux octets des unités de code UTF-16 octet et octet de poids fort à permutés:

original text:    <  s  u  m  m  a  r  y  > 
representation in UTF-16LE: 3C 00 73 00 75 00 6D 00 6D 00 61 00 72 00 79 00 3E 00 
accidentally misaligned:  00 3C 00 73 00 75 00 6D 00 6D 00 61 00 72 00 79 00 3E 
decoded from misaligned:  㰀 猀 甀 洀 洀 愀 爀 礀 㸀 

Enregistrer vos fichiers dans un encodage compatible ASCII et vous ne serez pas cette peine. De préférence: UTF-8-sans-BOM.

+0

Cela expliquerait pourquoi c'est une ligne sur deux. Je vous remercie. –

+0

J'ai finalement réussi à écrire un script pour réparer automatiquement quand il se produit: https://gist.github.com/981486 –

Questions connexes