Files
comun/docs/fluxul_svn_git.md
Marius Mutu c4d869921d verificare partener: garda pe cont NULL, hook-uri de disciplina, docs compactate
- ooperatii_comune: verific_partener nu mai construieste SQL NULL cand contul
  primit e NULL (EMPTY(.NULL.) e .F. in VFP)
- utile\context_watch.ps1 si utile\docs_revizie_check.ps1: masurarea contextului
  sesiunii si cadenta reviziei de documentatie, prin hook-uri Claude Code
  (instalare in docs\monitorizare-context.md)
- reguli_lucru: delegare la subagenti, modificari minime si scoped, scrierea si
  revizuirea documentatiei, changelog strictul necesar (regulile 3, 6, 9, 11, 12)
- scripturi-migrare-db: continutul unui script (scoped, fara select, idempotent)
- teste noi pentru cele doua erori din achizitia de import
- restul documentatiei compactata, fara pierdere de reguli

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
2026-08-02 22:30:44 +03:00

2.3 KiB

Flux SVN + git pentru COMUN

SVN = șeful (munca reală circulă prin el). git = oglindă pentru unelte (Claude, căutare). git primește de la SVN, niciodată invers.

Reguli

  1. Munca reală se comite DOAR în SVN. Nu face git commit cu o modificare noua care n-a trecut prin SVN.
  2. git se împrospătează DIN svn, într-o singură direcție.
  3. COMUN se publică pe git dintr-UN SINGUR folder (publisher, ex. ROAAUTO\COMUN). Celelalte doar se aliniază la origin.

Lucrat în paralel în 2 proiecte (ex. roagest + roaauto), fișiere diferite

  1. Împaci în SVN: svn commit in ROAGEST\COMUN -> svn update in ROAAUTO\COMUN (aduce fisierele din roagest, fara conflict pe fisiere diferite) -> svn commit acolo -> svn update inapoi in ROAGEST\COMUN. Acum ambele copii SVN au tot — e sursa de adevăr.
  2. Oglindești în git, doar din folderul publisher: git add -A + git commit + git push in ROAAUTO\COMUN.
  3. Celălalt folder: aliniere, NU commit — in ROAGEST\COMUN: git fetch origin + git reset --hard origin/main. Sigur: fișierele sunt deja identice cu origin (le-a făcut svn), reset doar mută pointerul.

Când te muți dintr-un proiect în altul: svn update in proiectul unde intri, apoi git reset --hard origin/main in COMUN, ca git-ul sa fie curat.

Regula care rezumă tot

Un singur folder publică în git (commit+push). Celelalte doar git reset --hard origin/main. Munca circulă prin SVN; git fotografiază rezultatul.

Model de branching (git urmareste text .??2)

git urmareste versiunile text FoxBin2Prg (.vc2/.sc2/…), improspatate in-arbore cu git_sync.ps1 la inceput de sesiune si inainte de orice commit; nu comite cat timp git_sync raporteaza esecuri (exit nenul). Doua benzi:

  • main = oglinda SVN: primeste DOAR commit-uri sync SVN rN, facute din stare curata (imediat dupa svn update, inainte de lucru local).
  • Claude lucreaza pe branch claude/<subiect> si comite doar acolo; git diff main..claude/<subiect> arata exact si numai munca lui.
  • Dupa ce modificarile intra in SVN (svn commit facut de utilizator), branch-ul se inchide (merge in main la urmatorul sync sau stergere).
  • Igiena: sync pe main doar din stare curata — svn update in mijlocul lucrului amesteca binarele pe disc.