docs: nota despre modificari fantoma git dupa svn update (CRLF/mtime)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 15:41:38 +03:00
parent 798e195898
commit 97e792d98b
2 changed files with 27 additions and 0 deletions

26
docs/git-svn-crlf.md Normal file
View File

@@ -0,0 +1,26 @@
# 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
```