From 48b9b1ccda00b31070737547fe409f272f3c978e Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Sun, 2 Aug 2026 09:00:44 +0300 Subject: [PATCH] Documentatie flux git+SVN si roa_sync pentru sincronizarea de inceput de sesiune --- docs/flux_git_flora2roa.md | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 docs/flux_git_flora2roa.md diff --git a/docs/flux_git_flora2roa.md b/docs/flux_git_flora2roa.md new file mode 100644 index 0000000..6a199b0 --- /dev/null +++ b/docs/flux_git_flora2roa.md @@ -0,0 +1,75 @@ +# Flux git + SVN in FLORA2ROA + +Proiectul e urmarit in PARALEL de doua sisteme, cu roluri diferite: + +- **SVN** (`http://svnroa:3001/svn/ROAIMPORT/FLORA2ROA`) ramane **sursa de adevar**, inclusiv + pentru binarele VFP (`frm_import.scx/.sct`, `flora2roa.pjx/.pjt`, `.fll`, `.exe`). +- **git** urmareste **versiunile TEXT** ale binarelor (`.sc2`, `.pj2`), generate in arbore de + FoxBin2Prg, plus sursele `.prg`, scripturile de test si documentatia. Binarele VFP sunt + git-ignored, ca diff-urile sa fie lizibile. + +Metoda generala si procedura de inrolare: `D:\ROA\ROACONT\COMUN\docs\inrolare-proiect-git-text.md` +si `fluxul_svn_git.md`. + +## Particularitatea acestui proiect + +FLORA2ROA **nu are folder `COMUN\`** (spre deosebire de ROACONT/ROAGEST/ROAFACTURARE, unde +COMUN e un external SVN cu repo git propriu). Foloseste doar un `comun.h` local. Prin urmare: + +- nu exista `COMUN\.git` de sincronizat aici; repo-ul `romfast/comun.git` e gestionat din + proiectele care il contin efectiv; +- scriptul partajat `COMUN\scripts\roa_sync.ps1` nu ajunge in acest proiect prin svn update, + deci exista un echivalent local: `Teste\roa_sync.ps1`, apelat de `roa_sync.bat` din radacina. + +## La inceput de sesiune + +``` +roa_sync.bat +``` + +Face, in ordine: `svn update` -> regenerarea textelor `.??2` (git_sync) -> commit `sync SVN r` +pe `main` -> reconciliere cu `origin` -> push (doar commit-uri de sync; unul non-sync blocheaza +push-ul automat, ca sa treaca prin review). + +Verificare rapida fara SVN: `powershell -File Teste\roa_sync.ps1 -GitOnly`. + +## Ce urmareste git + +Urmarite: `.prg`, `.h`, `.sc2`/`.pj2` (textele binarelor), `Teste\`, `docs\`, `settings.ini`, +`settings.flora.ini`, `app.ico`, `.fll` (dependente de rulare, versionate si in SVN), +exemplele mici de import care sunt si in SVN. + +Ignorate (`.gitignore`): binarele convertibile (`.scx/.sct/.pjx/.pjt/...`), compilatele +(`.fxp`), `flora2roa.exe`, `log\`, artefactele testelor (`Teste\uisync`, `Teste\screenshots`, +`*_log.txt`), si restul folderului `EXEMPLE\` (~900 fisiere, ~80 MB de date locale de lucru; +in git raman doar cele 7 exemple versionate si in SVN). + +`.gitattributes` are `* -text`: SVN ramane autoritatea pentru sfarsiturile de linie, git nu +normalizeaza nimic (altfel ar aparea modificari fantoma dupa fiecare `svn update`). + +Simetric, `svn:ignore` pe radacina acopera `.git`, `.gitignore`, `.gitattributes` si toate +textele `.??2`, ca sa nu ajunga din greseala in SVN. + +## Editarea formularului pe text + +```powershell +powershell -ExecutionPolicy Bypass -File Teste\text_din_bin.ps1 # binar -> frm_import.sc2 +# editezi frm_import.sc2 byte-safe, in Windows-1252 (vezi conventie_encoding_cp1252.md) +powershell -ExecutionPolicy Bypass -File Teste\bin_din_text.ps1 -TextFile frm_import.sc2 -DryRun +powershell -ExecutionPolicy Bypass -File Teste\bin_din_text.ps1 -TextFile frm_import.sc2 +``` + +Write-back-ul face fidelity check pe octeti inainte de a atinge binarul. Dupa el, binarul apare +modificat in SVN: **`svn commit` doar cu acordul explicit al utilizatorului**. + +## De facut (blocant, cere interventia utilizatorului) + +Repo-ul gitea `romfast/flora2roa.git` **nu exista inca**; procedura interzice crearea de +repo-uri prin API. Dupa ce e creat din interfata gitea: + +```powershell +git -C D:\PROIECTE\FLORA\FLORA2ROA remote add origin git@gitea.romfast.ro:romfast/flora2roa.git +git -C D:\PROIECTE\FLORA\FLORA2ROA push -u origin main +``` + +Pana atunci repo-ul e valid local, iar `roa_sync.bat` semnaleaza lipsa remote-ului si continua.