2.4 KiB
2.4 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
- Munca reală se comite DOAR în SVN. Nu face
git commitcu o modificare nouă care n-a trecut prin SVN. - git se împrospătează DIN svn, într-o singură direcție.
- 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
# ROAGEST\COMUN
svn commit -m "modificari roagest"
# ROAAUTO\COMUN
svn update # aduce fisierele din roagest (alte fisiere -> fara conflict)
svn commit -m "modificari roaauto"
# ROAGEST\COMUN
svn update # aduce fisierele din roaauto
Acum ambele copii SVN au tot. E sursa de adevăr.
2. Oglindești în git (doar din folderul publisher)
cd ROAAUTO\COMUN
git add -A
git commit -m "sync svn"
git push
3. Celălalt folder: aliniere, NU commit
cd 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
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-urisync SVN rN, facute din stare curata (imediat dupasvn 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 commitfacut de utilizator), branch-ul se inchide (merge inmainla urmatorul sync sau stergere). - Igiena: sync pe
maindoar din stare curata —svn updatein mijlocul lucrului amesteca binarele pe disc.