51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# 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.
|