sync SVN r18162

This commit is contained in:
2026-09-17 17:27:22 +03:00
parent 496e15c0cf
commit af2d0ba7d2

View File

@@ -8,6 +8,36 @@ description: Fluxul de commit si sincronizare pentru biblioteca partajata COMUN
SVN = sursa de adevar. git = oglinda. Pe `main` din COMUN scrie **doar** `roa_sync`. Comenzile le
rulezi tu; utilizatorul doar aproba - dar nimic nu se comite fara un "da" explicit de la el.
## SVN sau git: decizia NU se face manual
Regula de baza: **in proiectul ROA si in COMUN, fisierele sursa (`.prg`, `.md`, `.ps1`, `.sql`,
`.bat`, `AGENTS.md`, `.vcx/.scx`, `.vc2/.sc2`) sunt SVN-tracked.** `git commit` se foloseste doar
pentru fisiere care NU sunt in SVN (`.gitignore`, `.gitattributes`, fisiere generate). Nu ghici -
verifici inainte de orice commit, cu o singura comanda:
```powershell
svn info "<cale_fisier>" >$null 2>&1
if ($?) { 'SVN -> svn commit' } else { 'git -> git commit' }
```
Decizia pe `svn status <cale>`:
- `M` / `A` / `D` -> SVN -> `svn commit` (niciodata `git commit`).
- `?` (neversionat) -> daca e sursa care trebuie sa circule la clienti -> `svn add` apoi
`svn commit`; daca e local/transient (handoff, plan, `.patch`, `.gitignore`) -> NU se comite.
Ce e de comis, descoperit cu comenzi (nu din memorie):
```powershell
svn status <proiect_sau_COMUN> # M/A/D = de comis in SVN; ? = neversionat
git -C <repo> status --short # doar oglinda; nu comiti aici fisierele SVN-tracked
```
Cazul care a muscat: `AGENTS.md` e SVN-tracked (`svn/ROA/ROAFACTURARE/Trunk/AGENTS.md`). Comis cu
`git commit`, creeaza un commit "non-sync" (nu l-a produs `roa_sync`) si lasa SVN-ul in urma ->
alt calculator nu primeste schimbarea prin `svn update`. Se repara: `git reset <ultim_sync>` +
`svn commit AGENTS.md` + `roa_sync.bat` + `git push --force` (doar daca commit-ul non-sync era deja
impins).
## Cand se foloseste
- "am terminat, dau commit", "vreau sa comit in COMUN", "comit ce am lucrat";
@@ -31,8 +61,15 @@ Arbore de decizie - opreste-te la primul caz care se potriveste.
modificarea nu exista. Abia apoi antet / test / diff.
4. **Ceri aprobarea, explicit si complet**: lista fisierelor de comis + mesajul propus. Nu
presupune "da" din tacere si nu amana pentru "mai tarziu" - el nu tine minte pasul, tu il tii.
5. **A zis "da"** -> rulezi tu `svn commit` **tintit**, doar fisierele aprobate: `.prg` sau
`.scx` + `.sct`, niciodata `.sc2`. Niciodata tot COMUN (intra zgomotul de compilare VFP).
5. **A zis "da"** -> rulezi tu `svn commit` **tintit**, doar fisierele aprobate, cu comenzile
exacte (nu le alegi tu - le rulezi asa):
```powershell
# fisiere noi -> intai svn add
svn add <fisier1> <fisier2>
# commit tintit: .prg / .md / .ps1 / .sql / .scx + .sct - niciodata .sc2, niciodata tot COMUN
svn commit <fisier1> <fisier2> -m "<mesaj>"
```
6. **Imediat dupa** -> `roa_sync.bat`. Raportezi revizia SVN si ce a intrat pe `main`.
7. **A zis "nu" / cere modificari** -> nu comiti, nu insisti, nu rulezi `roa_sync`. Lucrarea
ramane necomisa pe disc si o raportezi asa la predarea contextului.