git di recente ha iniziato a comprendere codifiche come utf16. Vedi documenti gitattributes , cercaworking-tree-encoding
[Assicurati che la tua pagina man corrisponda poiché è abbastanza nuova!]
Se (diciamo) il file è UTF-16 senza DBA sul computer Windows, aggiungere al .gitattributes
file
*.vmc text working-tree-encoding=UTF-16LE eol=CRLF
Se UTF-16 (con bom) su * nix, fallo:
*.vmc text working-tree-encoding=UTF-16-BOM eol=LF
(Sostituisci *.vmc
con *.whatever
per i whatever
file di tipo che devi gestire)
Vedere: Supporto della codifica working-tree "UTF-16LE-BOM" .
Aggiunto dopo
Dopo @Hackslash, è possibile che ciò sia insufficiente
*.vmc text working-tree...
Per ottenere buone differenze di testo è necessario
*.vmc diff working-tree...
Mettere anche entrambe le opere
*.vmc text diff working-tree...
Ma è discutibile
- Ridondante:
eol=...
implicatext
- Verbose - un grande progetto potrebbe facilmente avere dozzine di diversi tipi di file di testo
Il problema
Git ha un attributo macro binary
che significa -text -diff
. Non +text +diff
è disponibile il contrario, ma git fornisce gli strumenti (penso!) Per sintetizzarlo
La soluzione
Git consente di definire nuovi attributi macro.
Proporrei quella parte superiore del .gitattributes
file che hai
[attr]textfile text diff
Quindi per tutti i percorsi che devono essere testo e diff
path textfile working-tree-encoding= eol=...
Si noti che nella maggior parte dei casi vorremmo che la codifica predefinita (utf-8) e quella predefinita (nativo) venissero eliminate.
La maggior parte delle linee dovrebbe apparire come
textfile *.c
textfile *.py
Etc
Perché non usare semplicemente diff?
Pratico: nella maggior parte dei casi vogliamo eol nativo. Il che significa no eol=...
. Quindi text
non verrà sottinteso e dovrà essere esplicitamente inserito.
Concettuale: il testo Vs binario è la distinzione fondamentale. eol, encoding, diff etc ne sono solo alcuni aspetti.
disconoscimento
A causa dei tempi bizzarri in cui viviamo, non ho una macchina con un sistema funzionante. Quindi al momento non riesco a controllare l'ultima aggiunta. Se qualcuno trova qualcosa di sbagliato, emetterò / rimuoverò.