sync SVN r18025
This commit is contained in:
@@ -52,6 +52,29 @@ write-back = modificarea nu există. Abia apoi antet / test / diff.
|
|||||||
**Ai terminat branch-ul** → în repo-ul proiectului: merge în `main`, normal. În `COMUN`: **nu face
|
**Ai terminat branch-ul** → în repo-ul proiectului: merge în `main`, normal. În `COMUN`: **nu face
|
||||||
merge**. După `svn commit`, conținutul ajunge pe `main` ca `sync SVN rN`; branch-ul se șterge.
|
merge**. După `svn commit`, conținutul ajunge pe `main` ca `sync SVN rN`; branch-ul se șterge.
|
||||||
|
|
||||||
|
**Ești pe branch în `COMUN` și te bate gândul la `roa_sync`** → **nu.** `roa_sync` se rulează în
|
||||||
|
exact două momente: la **intrarea** în proiect și **imediat după `svn commit`**. Ce te încurcă e
|
||||||
|
`svn update` de la pasul 1, nu git-ul:
|
||||||
|
|
||||||
|
- **branch cu modificări necomise** → `svn update` rulează necondiționat și aduce fișierele altor
|
||||||
|
proiecte peste ce ai pe disc; la binare dă conflict și `roa_sync` se oprește cu eroare. Git, în
|
||||||
|
schimb, e cuminte: vede tree murdar pe branch și sare peste, nu-ți atinge branch-ul.
|
||||||
|
- **branch cu tree curat** → `roa_sync` face `checkout main` **fără să întrebe**. Textele de pe disc
|
||||||
|
revin la `main`, binarele nu (git nu le urmărește) → rămâi cu text de pe `main` peste binare de pe
|
||||||
|
branch. Munca e în commit, dar nu mai e pe disc, iar VFP ar compila altceva.
|
||||||
|
- **curățenia de la pasul 5** șterge doar branch-urile `claude/*` al căror `git diff main..branch` e
|
||||||
|
gol, adică cele a căror muncă a intrat deja prin SVN. Ce n-a intrat rămâne, raportat „activ".
|
||||||
|
|
||||||
|
Dacă chiar trebuie să aduci ceva de la alții în mijlocul lucrului: termină write-back-ul, dă
|
||||||
|
`svn commit` dacă lucrarea e gata, și abia apoi `roa_sync`.
|
||||||
|
|
||||||
|
**Vrei să aduci ce au făcut alții** → `roa_sync.bat`. **Niciodată `git pull`**: git poartă doar
|
||||||
|
textele, nu și binarele. Un `pull` ți-ar da `.sc2`-ul nou peste un `.scx/.sct` vechi — VFP compilează
|
||||||
|
binarul, deci modificarea n-ar exista în aplicație, iar următorul `git_sync` ar regenera textul din
|
||||||
|
binarul vechi și ar șterge-o. În plus, fișierele scrise de git peste un working copy rămas la o
|
||||||
|
revizie veche apar în `svn status` ca și cum ar fi munca ta. `roa_sync` face ordinea corectă:
|
||||||
|
`svn update` (binare + surse) → regenerare text → git prin fast-forward.
|
||||||
|
|
||||||
**Vrei `svn update`** → doar din stare curată. Niciodată în mijlocul lucrului: aduce binare noi peste
|
**Vrei `svn update`** → doar din stare curată. Niciodată în mijlocul lucrului: aduce binare noi peste
|
||||||
ce ai pe disc. Dacă ai text `.??2` editat fără write-back, fă întâi write-back-ul.
|
ce ai pe disc. Dacă ai text `.??2` editat fără write-back, fă întâi write-back-ul.
|
||||||
|
|
||||||
@@ -77,6 +100,7 @@ periculoasă.
|
|||||||
## Interzis
|
## Interzis
|
||||||
|
|
||||||
- `git commit` / `git push` / `git merge` pe `main` în `COMUN`
|
- `git commit` / `git push` / `git merge` pe `main` în `COMUN`
|
||||||
|
- `git pull` în `COMUN` — aduce textele fără binare; se folosește `roa_sync.bat`
|
||||||
- copierea unui fișier dintr-o copie de `COMUN` în alta — `svn update` îl duce; copierea = intrare dublă
|
- copierea unui fișier dintr-o copie de `COMUN` în alta — `svn update` îl duce; copierea = intrare dublă
|
||||||
- write-back pe `.fr2` / `.mn2` / `.lb2` / `.pj2` — nu e suportat; acolo textul se citește, modificarea se face în IDE
|
- write-back pe `.fr2` / `.mn2` / `.lb2` / `.pj2` — nu e suportat; acolo textul se citește, modificarea se face în IDE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user