1.4 KiB
Modificari fantoma git dupa svn update (CRLF)
Simptom: git status arata fisiere ca modified (de obicei .md in COMUN/docs/,
uneori roagest.pjx/.PJT) dupa un ciclu svn update/svn commit, desi git diff
nu arata nicio linie schimbata.
Cauza: SVN scrie fisierele cu CRLF nativ pe Windows si le atinge mtime-ul la fiecare
update, chiar daca continutul nu s-a schimbat. Cu core.autocrlf=true (setare globala
uzuala), git recompara/converteste EOL-urile la fiecare verificare de stat, si uneori
ramane cu index-ul in stare "needs update" desi hash-ul blob-ului e identic cu HEAD
(verificabil cu git hash-object <fisier> vs git ls-files -s <fisier>).
Fix aplicat (2026-07-15): .gitattributes cu * -text la radacina fiecarui repo
(ROAGEST/.gitattributes, COMUN/.gitattributes, si replicat in ROAAUTO, ROACONT)
— dezactiveaza complet normalizarea CRLF/LF facuta de git, SVN ramane singura autoritate
pentru line endings. Fix independent de core.autocrlf local al fiecarui calculator/user.
Daca reapare pe un repo nou (alta aplicatie ROA cu acelasi tipar svn+git in paralel),
copiaza acelasi .gitattributes (* -text) la radacina.
Diagnostic rapid daca git status minte ca un fisier e curat/murdar:
git hash-object <fisier>
git ls-files -s <fisier> # compara al doilea camp (blob sha) cu output-ul de mai sus
git update-index --refresh # sau git add <fisier> daca hash-urile sunt identice