Ho un repository git su una cartella Dropbox, condivisa tra una macchina Linux e una macchina Windows. Cerco di sincronizzare solo sul computer Windows, perché sono a conoscenza di "problemi" che possono sorgere. Di tanto in tanto faccio un piccolo commit sulla scatola di Linux, per tenere traccia delle mie modifiche,
Ma ora sono davvero curioso, cosa sta facendo git: Id non ha toccato il file fonttest.tex
, ma git mi ha riferito che è stato modificato:
towi@havaloc:~/Dropbox/latex$ git status fonttest.tex
# On branch master
...
# modified: fonttest.tex
E l' diff
elenco elenca l'intero file: tutte le righe vengono eliminate e inserite di nuovo. Ok, probabilmente un problema CRLF. Quindi chiedo todos
e fromdos
convertire avanti e indietro con e senza CR e CRLF. Ma - indovina già - nessuna modifica per git
: tutte le linee sono cambiate.
Hmm, ho pensato, Dal momento che so che nulla è cambiato, ottengo una copia pulita :
mv fonttest.tex fonttest.tex1
git checkout fonttest.tex
E poiché sono una persona curiosa, voglio vedere la differenza:
diff fonttest.tex fonttest.tex1
Niente. Veramente?
towi@havaloc:~/Dropbox/latex$ md5sum fonttest.tex*
d3544bd060504ebb682b2e446375b3b3 fonttest.tex
d3544bd060504ebb682b2e446375b3b3 fonttest.tex1
Veramente. E cosa ci sta pensando Git ?
towi@havaloc:~/Dropbox/latex$ git status fonttest.tex
# On branch master
...
# modified: fonttest.tex
Amico, l'hai appena verificato per me! Qual è il problema qui? Perché git pensa che il file sia cambiato?
Ecco un estratto della mia configurazione. Ho fatto alcuni aggiustamenti riguardanti CRLF, seguendo il consiglio di qualcuno per la condivisione di Dropbox. Ma ... non riesco a seguire Git qui.
towi@havaloc:~/Dropbox/latex$ git config -l
diff.renames=copies
apply.ignorewhitespace=change
apply.whitespace=nowarn
core.whitespace=cr-at-eol
core.repositoryformatversion=0
core.filemode=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.eol=lf
core.autocrlf=input