Files
foxbin2prg/git_svn_parallel_init_prompt.md
Marius Mutu b449e0aa2f Muta cache-urile text VFP in afara clonei foxbin2prg
ReCreate_FoxBin2Prg.prg face Prg2Bin recursiv pe tot folderul tool-ului (get_FilesFromDirectory intra in orice subfolder), deci _textcache_* aflate sub foxbin2prg erau scanate si .??2-urile din alte proiecte reconvertite in binare parazitare.

Cache-urile stau acum in D:\ROA\_vfp_textcache\{roacnpro,roagest,roaimob}, in afara clonei, unde ReCreate nu le mai poate atinge. Actualizat default CacheRoot in vcx2txt.ps1, exemplele din CLAUDE.md / PROMPT_cautare_vfp.md / git_svn_parallel_init_prompt.md si comentariul din .git/info/exclude.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 12:46:06 +03:00

5.2 KiB

Prompt: init git in paralel cu SVN pentru un proiect ROA

Foloseste acest prompt intr-o sesiune Claude Code noua, deschisa in radacina proiectului tinta (ex. D:\ROA\ROAIMOB). Functioneaza generic pentru orice proiect VFP din D:\ROA\ care are structura ROAACNPRO (proiect + subfolder COMUN\ partajat, ambele in SVN).


Vreau sa initializezi git pentru proiectul VFP din directorul curent, in paralel cu SVN-ul
existent (nu atinge SVN, nu rula comenzi svn, doar adauga .svn/ in .gitignore).

Structura e identica cu D:\ROA\ROAACNPRO: acest folder e propriul proiect VFP (are un .PJX
al lui), si contine un subfolder COMUN\ care e framework-ul PARTAJAT intre toate aplicatiile
ROA, versionat separat prin SVN (are propriul .svn\).

Fa exact ce s-a facut deja pentru ROAACNPRO (poti citi acolo ca referinta/sablon):
- D:\ROA\ROAACNPRO\.gitignore (sablon pentru .gitignore-ul proiectului principal)
- D:\ROA\ROAACNPRO\COMUN\.gitignore (sablon pentru .gitignore-ul din COMUN)
- D:\ROA\ROAACNPRO\CLAUDE.md (conventii proiect) si docs\cautare_vcx_vct.md (cum se cauta
  cod in interiorul .vcx/.scx binare, via D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1)

Pasi:

1. Verifica intai ce exista deja: `git status`/`.git` in radacina si in COMUN\, si
   `git remote -v` daca exista deja vreun remote configurat gresit (asa cum a fost cazul la
   ROAACNPRO, unde originul proiectului principal pointa gresit catre repo-ul comun.git).

2. REPO PRINCIPAL (radacina acestui folder):
   - Daca nu exista .git, `git init -b main`.
   - Creeaza/adapteaza .gitignore dupa modelul ROAACNPRO/.gitignore (artefacte VFP compilate:
     *.fxp, *.mpx, *.bak, *.mpr, *.err, log.txt, *.tmp, *.dct, *.exe, cruft Windows), plus
     obligatoriu `COMUN/` (COMUN e gestionat de git-ul lui separat, nu de-al acestui repo)
     si `.svn/`.
   - Deduce numele repo-ului gitea dupa conventia romfast/<nume-folder-lowercase>.git
     (ex. romfast/roaimob.git). INAINTE sa creezi/pushezi orice, verifica cu
     `git ls-remote git@gitea.romfast.ro:romfast/<nume>.git` daca exista deja si ce contine
     (clone --depth 1 intr-un folder temporar din scratchpad daca ai dubii). Daca exista deja
     cu istoric care nu se potriveste cu ce ai local, OPRESTE-TE si intreaba-ma inainte sa
     faci push sau orice suprascriere.
   - Daca remote-ul e gol/nou: add -A, commit "Initial commit — sursa <PROIECT>", adauga
     origin, push normal (fara --force).

3. COMUN\ (subfolder-ul partajat):
   - Initializeaza un git SEPARAT, propriu, in interiorul COMUN\ (COMUN are propriul .git,
     nu e tracked de repo-ul principal — de-asta l-am exclus mai sus).
   - .gitignore propriu in COMUN\ dupa modelul ROAACNPRO/COMUN/.gitignore (artefacte VFP +
     `.svn/` + `bash.exe.stackdump`).
   - Origin-ul din COMUN\ trebuie sa fie EXACT acelasi repo pentru toate proiectele ROA:
     git@gitea.romfast.ro:romfast/comun.git — repo-ul asta e deja populat (din COMUN-ul lui
     ROAACNPRO). NU face commit+push orbeste peste el.
   - Fa intai `git fetch origin`, compara continutul de pe origin/main cu fisierele locale
     din acest COMUN\ (diff pe folder, nu doar pe nume). Daca sunt identice sau diferentele
     sunt neglijabile, seteaza pur si simplu branch-ul local sa urmareasca origin/main (fara
     sa strici fisierele din working copy SVN). Daca sunt diferente reale intre COMUN-ul
     acestui proiect si cel deja impins pe gitea, arata-mi un rezumat al diferentelor si
     intreaba-ma explicit cum procedez (nu face force-push fara aprobarea mea explicita —
     ar sterge ireversibil istoricul comun tuturor proiectelor ROA).

4. Cautare in cod VFP binar (.vcx/.scx) pentru acest proiect:
   - Foloseste acelasi vcx2txt.ps1, dar parametrizat pentru proiectul curent (nu ROAACNPRO):
     powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1 `
       -Project D:\ROA\<PROIECT>\<proiect>.PJX -ProjectRoot D:\ROA\<PROIECT> `
       -CacheRoot D:\ROA\_vfp_textcache\<proiect>
   - Cache separat per proiect, in D:\ROA\_vfp_textcache\ (in AFARA folderului foxbin2prg, ca
     ReCreate_FoxBin2Prg.prg sa nu-l reconverteasca). Nu-l amesteca cu cache-ul ROAACNPRO
     (D:\ROA\_vfp_textcache\roacnpro). Grep in cache-ul respectiv, la fel ca in docs\cautare_vcx_vct.md.

5. La final, adauga/actualizeaza CLAUDE.md al acestui proiect cu o sectiune scurta: git ruleaza
   in paralel cu SVN legacy (SVN ramane sursa "vie" pentru COMUN, sincronizat manual catre git);
   COMUN e partajat intre toate aplicatiile ROA prin acelasi git@gitea.romfast.ro:romfast/comun.git;
   cautarile in .vcx/.scx se fac cu vcx2txt.ps1 parametrizat pentru acest proiect (vezi mai sus).

Inainte de orice `push --force` sau orice operatie care ar suprascrie istoric remote deja
existent (mai ales pe romfast/comun.git, care e comun mai multor proiecte), opreste-te si
intreaba-ma explicit — nu decide singur.

Note

  • Cel mai sensibil pas e COMUN: daca versiunea de COMUN a noului proiect difera de cea deja impinsa pe comun.git (din ROAACNPRO), Claude trebuie sa se opreasca si sa intrebe cum se reconciliaza, nu sa faca force-push automat.
  • Daca romfast/<proiect>.git nu exista inca pe gitea, trebuie creat gol acolo inainte de push (manual sau prin API) — altfel push-ul esueaza cu "repository not found".