# Scripturi uzuale (sarcini repetitive) **Regula: o sarcina care se repeta se pune intr-un script si de atunci se apeleaza scriptul.** Nu reface lantul de pasi din memorie la fiecare sesiune si nu da unui subagent aceleasi instructiuni a doua oara — daca a doua oara e nevoie de acelasi lucru, scrie scriptul. | Cand | Ce rulezi | Ce face | |---|---|---| | inceput de sesiune, si dupa orice `svn update` | `roa_sync.bat` din radacina proiectului (→ `COMUN\scripts\roa_sync.ps1`) | `svn update` → `git_sync` (texte `.??2`) → commit `sync SVN r` → reconciliere cu `origin` (ff/rebase) → push conditionat → inchide branch-urile `claude/*` terminate | | inainte de un commit | `COMUN\utile\curatenie.ps1` (`-DryRun` doar listeaza) | sterge artefactele de lucru netrackuite: patch-uri de review, `handoff*`/`runda*`/`propuneri_*`, backup-uri `*.pre_runda*.bak`, artefacte de test | | la "commit / push" | `COMUN\utile\livrare.ps1 -Mesaj "..." [-Comun]` | `git_sync` → `curatenie` → verificari de livrare → status/diff pe ambele repo-uri → commit + push. `COMUN` doar cu `-Comun`; `push --force` nu exista | | editare `.vcx`/`.scx` | `D:\ROA\UTIL\foxbin2prg\` : `git_sync.ps1`, `vfp_symbols.ps1`, `txt2vcx.ps1` | reimprospatare text in-arbore, index de simboluri, write-back cu fidelity-check | | actualizare de baza de date blocata | `COMUN\utile\diag_actualizare.ps1 -Alias ` | `UPD_ISTORIC` → `UPD_LOG` → `script_master.log` → versiuni per schema → job → tablespace → verdict. Vezi `depanare-pack-update.md` | | spatiu plin la un client | `COMUN\utile\diag_spatiu.ps1 -Alias [-Disc] [-SysPassword]` | tablespace, audit, ADR, FRA, disc server, top segmente. Vezi `depanare-spatiu-oracle.md` | | teste UI VFP | harness din `COMUN\utile\Teste` | vezi `testare-ui-vfp.md` | Documentatia **nu** se genereaza automat si nu exista niciun hook care s-o scrie — `livrare.ps1` doar semnaleaza ce lipseste (changelog neatins, binar VFP fara textul lui sincronizat). Candidati inca nescrisi: un helper pentru rulat SQL prin `sqlplus` (fisier ASCII + `@fisier.sql`, refacut manual la fiecare interogare) si un wrapper care ruleaza `diag_spatiu.ps1` peste toti clientii, cu un rezumat pe un rand per server. Fluxul SVN ↔ git din spatele lui `roa_sync`: `fluxul_svn_git.md`. **Mesaje de commit din PowerShell catre `git`/`svn` (exe native): niciodata `-m $mesaj`.** PowerShell nu escapeaza ghilimele/backtick/`$` cand paseaza argumente catre un exe nativ - un mesaj cu `"..."` sparge comanda. Solutie: scrie mesajul intr-un fisier temporar si foloseste `git commit -F ` / `svn commit -F `, cu textul **UTF-8 fara BOM** (`[IO.File]::WriteAllText($cale, $mesaj, (New-Object Text.UTF8Encoding $false))` - `Out-File -Encoding utf8` in PS 5.1 scrie BOM, care ajunge ca prim caracter in mesajul de commit) si **LF, nu CRLF** (`svn commit -F` refuza fisiere cu linii mixte CRLF/LF: `E135000`).