sync SVN r18162
This commit is contained in:
@@ -8,6 +8,36 @@ description: Fluxul de commit si sincronizare pentru biblioteca partajata COMUN
|
||||
SVN = sursa de adevar. git = oglinda. Pe `main` din COMUN scrie **doar** `roa_sync`. Comenzile le
|
||||
rulezi tu; utilizatorul doar aproba - dar nimic nu se comite fara un "da" explicit de la el.
|
||||
|
||||
## SVN sau git: decizia NU se face manual
|
||||
|
||||
Regula de baza: **in proiectul ROA si in COMUN, fisierele sursa (`.prg`, `.md`, `.ps1`, `.sql`,
|
||||
`.bat`, `AGENTS.md`, `.vcx/.scx`, `.vc2/.sc2`) sunt SVN-tracked.** `git commit` se foloseste doar
|
||||
pentru fisiere care NU sunt in SVN (`.gitignore`, `.gitattributes`, fisiere generate). Nu ghici -
|
||||
verifici inainte de orice commit, cu o singura comanda:
|
||||
|
||||
```powershell
|
||||
svn info "<cale_fisier>" >$null 2>&1
|
||||
if ($?) { 'SVN -> svn commit' } else { 'git -> git commit' }
|
||||
```
|
||||
|
||||
Decizia pe `svn status <cale>`:
|
||||
- `M` / `A` / `D` -> SVN -> `svn commit` (niciodata `git commit`).
|
||||
- `?` (neversionat) -> daca e sursa care trebuie sa circule la clienti -> `svn add` apoi
|
||||
`svn commit`; daca e local/transient (handoff, plan, `.patch`, `.gitignore`) -> NU se comite.
|
||||
|
||||
Ce e de comis, descoperit cu comenzi (nu din memorie):
|
||||
|
||||
```powershell
|
||||
svn status <proiect_sau_COMUN> # M/A/D = de comis in SVN; ? = neversionat
|
||||
git -C <repo> status --short # doar oglinda; nu comiti aici fisierele SVN-tracked
|
||||
```
|
||||
|
||||
Cazul care a muscat: `AGENTS.md` e SVN-tracked (`svn/ROA/ROAFACTURARE/Trunk/AGENTS.md`). Comis cu
|
||||
`git commit`, creeaza un commit "non-sync" (nu l-a produs `roa_sync`) si lasa SVN-ul in urma ->
|
||||
alt calculator nu primeste schimbarea prin `svn update`. Se repara: `git reset <ultim_sync>` +
|
||||
`svn commit AGENTS.md` + `roa_sync.bat` + `git push --force` (doar daca commit-ul non-sync era deja
|
||||
impins).
|
||||
|
||||
## Cand se foloseste
|
||||
|
||||
- "am terminat, dau commit", "vreau sa comit in COMUN", "comit ce am lucrat";
|
||||
@@ -31,8 +61,15 @@ Arbore de decizie - opreste-te la primul caz care se potriveste.
|
||||
modificarea nu exista. Abia apoi antet / test / diff.
|
||||
4. **Ceri aprobarea, explicit si complet**: lista fisierelor de comis + mesajul propus. Nu
|
||||
presupune "da" din tacere si nu amana pentru "mai tarziu" - el nu tine minte pasul, tu il tii.
|
||||
5. **A zis "da"** -> rulezi tu `svn commit` **tintit**, doar fisierele aprobate: `.prg` sau
|
||||
`.scx` + `.sct`, niciodata `.sc2`. Niciodata tot COMUN (intra zgomotul de compilare VFP).
|
||||
5. **A zis "da"** -> rulezi tu `svn commit` **tintit**, doar fisierele aprobate, cu comenzile
|
||||
exacte (nu le alegi tu - le rulezi asa):
|
||||
|
||||
```powershell
|
||||
# fisiere noi -> intai svn add
|
||||
svn add <fisier1> <fisier2>
|
||||
# commit tintit: .prg / .md / .ps1 / .sql / .scx + .sct - niciodata .sc2, niciodata tot COMUN
|
||||
svn commit <fisier1> <fisier2> -m "<mesaj>"
|
||||
```
|
||||
6. **Imediat dupa** -> `roa_sync.bat`. Raportezi revizia SVN si ce a intrat pe `main`.
|
||||
7. **A zis "nu" / cere modificari** -> nu comiti, nu insisti, nu rulezi `roa_sync`. Lucrarea
|
||||
ramane necomisa pe disc si o raportezi asa la predarea contextului.
|
||||
|
||||
Reference in New Issue
Block a user