Files
comun/docs/fluxul_svn_git.md
2026-07-15 14:01:45 +03:00

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

  1. Munca reală se comite DOAR în SVN. Nu face git commit cu o modificare nouă care n-a trecut prin SVN.
  2. git se împrospătează DIN svn, într-o singură direcție.
  3. 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.