1.6 KiB
1.6 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.