42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# Flux editare .vcx/.scx pe text (comun proiectelor VFP)
|
|
|
|
Textul .vc2/.sc2 e sursa de editare; write-back in binar cu `txt2vcx.ps1`, fara VFP IDE.
|
|
Detalii complete: `D:\ROA\UTIL\foxbin2prg\CLAUDE.md`. Parametrii per proiect: in `docs\` proiectului.
|
|
|
|
**Proiecte migrate (ROACONT, COMUN, …): flux in-arbore.** Textul .??2 sta langa binare, il
|
|
improspateaza `git_sync.ps1 -ProjectRoot <root>` (nu cache extern) — la inceput de sesiune si
|
|
inainte de orice `git commit`. Write-back doar pentru vcx/scx; `frx/mnx/lbx/pjx/dbc/dbf` doar
|
|
in IDE. `txt2vcx.ps1` cu `-CacheRoot` = `-ProjectRoot` (implicit). Pasul 0 de mai jos devine
|
|
rularea `git_sync.ps1`; restul pasilor raman la fel. Fluxul cu cache extern (`vcx2txt.ps1` +
|
|
`-CacheRoot` separat) ramane doar pentru proiectele nemigrate.
|
|
|
|
## Pasii unei runde
|
|
|
|
0. Refresh cache (obligatoriu dupa orice sesiune IDE — staleness pe mtime):
|
|
`vcx2txt.ps1 -Project <pjx> -ProjectRoot <root> -CacheRoot <cache> -Types vcx,scx`
|
|
1. Baseline: `Copy-Item <f>.vc2 <f>.vc2.pre_runda<N>.bak` (in cache; la runde succesive
|
|
necomise, diff-ul fata de HEAD ar amesteca rundele).
|
|
2. Editare byte-safe: PowerShell `[IO.File]::ReadAllText/WriteAllText(..., GetEncoding(1252))`;
|
|
NU tool-ul Edit/Write (UTF-8 strica diacriticele). Continut nou ASCII, TAB-uri ca in jur,
|
|
fara reflow (format position-sensitive, proprietati alfabetizate). Valabil si pentru `.prg`.
|
|
3. Patch review: `git diff --no-index <bak> <editat> > docs/diff_runda<N>_<subiect>.patch`
|
|
(exit 1 = normal). Utilizatorul revizuieste FISIERUL de patch si aproba; write-back-ul
|
|
(pasul 5) se face DOAR dupa aprobare. Commit doar dupa confirmare pe patch + test in IDE.
|
|
Comentariile in cod: maxim o linie (`*!* DD.MM.YYYY autor - motiv scurt`), fara explicatii lungi.
|
|
4. Preconditie write-back: niciun proces vfp9/<exe proiect> (tin lock pe binar); nu se omoara.
|
|
5. Write-back: `txt2vcx.ps1 -TextFile <vc2> -ProjectRoot <root> -CacheRoot <cache>`
|
|
(+ `-AllowComun` cu aprobare explicita pentru tinte COMUN — afecteaza toate aplicatiile ROA).
|
|
Succes = fidelity-check trecut: binar cu mtime nou; `vcx2txt.ps1` ulterior il vede la zi.
|
|
6. Backup-urile `.pre_runda*.bak` si patch-urile se sterg la curatenia de dupa commit.
|
|
|
|
## Capcane
|
|
|
|
- `.mnx`/`.frx` raman read-only (GENMENU in IDE / round-trip fragil).
|
|
- Linii complet goale in metode pica fidelity doar pe whitespace; fix: preia `verify\*.vc2`
|
|
din staging peste cache si reia write-back-ul.
|
|
- Metoda noua de clasa cere `*m: nume` in `*<DefinedPropArrayMethod>`; fara ea, prima salvare
|
|
din IDE o arunca tacut, iar refresh-ul urmator absoarbe pierderea in cache (si in .bak-uri).
|
|
Override-urile de metode de baza (Init, Show, hook-uri) nu au nevoie de `*m:`.
|
|
- Subagentii delegati primesc regulile 2-5 in prompt si raporteaza unicitatea sirurilor
|
|
inlocuite + rezultatul fidelity-check-ului.
|