Ho una macchina Windows con progetto VS e uso sia Visual Studio che strumenti dall'ambiente Cygwin incluso Git. A volte ottengo diverse terminazioni di riga nei file dopo la modifica. Voglio una soluzione semplice per controllare la coerenza di fine riga dei file prima che vadano al repository. Git's core.safecrlf
è la cosa giusta, suppongo. Ora ho uno strano comportamento:Git core.safecrlf comportamento diverso su file con le stesse terminazioni di linea
file A
e B
con i seguenti parametri:
$file A
A: HTML document, UTF-8 Unicode text, with CRLF line terminators
$file B
B: HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
File A è già in pronti contro termine, il file B è nuova. Nota, entrambi hanno terminazioni di linea CRLF. Ora prova a metterli in scena, core.safecrlf
è true
.
$git add A # ok
$git add B # fails
fatal: CRLF would be replaced by LF in B.
Sto usando correttamente core.safecrlf
? O forse ho bisogno di scrivere hook per controllare i file?
Note:
- provato con differenti codifiche di file (con e senza BOM), nessuna differenza.
- c'è legato
core.autocrlf
caratteristica in Git, aggiunto ai tag (StackOverflow Nessun tag percore.safecrlf
) - git versione 1.8.5.rc1.17.g0ecd94d (compilato da fonti sotto Cygwin)
EDIT # 1: estratto core.autocrlf
- era input
. Modificato su false
, ora posso aggiungere entrambi i file. Perché?