Sari la conținut

Adaugă repo-uri într-un spațiu de lucru

Acest ghid arată cum să înregistrezi un checkout Git într-un spațiu de lucru, cum să îl reindexezi și cum să îl elimini din nou.

Repo-urile sunt limitate la spațiul de lucru. Nu există un registru global și nici un pas de legare: adăugarea unui repo și punerea lui într-un spațiu de lucru sunt același act. Același checkout înregistrat în două spații de lucru devine două rânduri independente, cu două id-uri diferite — între spații de lucru, identitatea unui repo este calea lui din sistemul de fișiere, niciodată id-ul lui.

Un folder poate fi înregistrat doar dacă sunt îndeplinite toate cele trei condiții:

  1. Se află în interiorul unui worktree git.
  2. Acel worktree are un remote origin.
  3. Remote-ul origin indică spre o forge suportată: github.com, gitlab.com sau bitbucket.org.

Orice altceva este refuzat în momentul înregistrării, cu un mesaj explicit: „Folder is not inside a git work tree.”, „No origin remote configured for this repository.” sau „The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).”. Nu există un mod doar-local.

Forge-ul este citit din remote și stocat pe repo — nu îl alegi niciodată. Un spațiu de lucru poate conține repo-uri de la toate cele trei simultan, iar comunicarea cu fiecare se face prin propria ei API, cu propria ei credențială. Namespace-urile imbricate ale GitLab sunt păstrate, astfel încât gitlab.com/group/subgroup/project se înregistrează cu proprietarul group/subgroup și numele project.

Folderul trebuie să se afle și pe mașina care găzduiește cc_server, într-unul dintre directoarele --repo-roots ale acelui server. Această listă de permisiuni are ca valoare implicită directorul home al utilizatorului serverului, iar navigarea deasupra unei rădăcini este refuzată.

  1. Deschide Setări → Spațiu de lucru → Depozite (/workspaces/<id>/settings/workspace/repositories).
  2. Apasă Adaugă depozit.

Dialogul este un navigator parcurgibil prin sistemul de fișiere al serverului, nu al tău. Fluxul este același pe desktop, pe web și pe telefon, pentru că un selector nativ de foldere ar alege un folder de pe mașina greșită.

  1. Navighează în interiorul rădăcinilor configurate ale serverului. Folderele care sunt checkout-uri git sunt marcate.
  2. Bifează oricâte dintre ele. Selecția persistă în timp ce navighezi, așa că poți aduna checkout-uri din mai multe foldere.
  3. Înregistrează-le într-un singur lot.

O alegere eșuată nu elimină niciodată restul lotului — primești id-urile care au fost create, plus o eroare pentru fiecare cale refuzată. Reînregistrarea unei căi deja prezente în acest spațiu de lucru returnează repo-ul existent, în loc să genereze un duplicat.

Fiecare repo înregistrat apare în listă cu owner/name, o insignă cu numele forge-ului și calea lui pe server. Repo-urile GitHub afișează și avatarul proprietarului; celelalte forge-uri nu au un URL de avatar de proprietar care să poată fi dedus, așa că recurg la inițiale.

Insigna forge-ului contează într-un spațiu de lucru mixt: două repo-uri se pot numi amândouă acme/web pe forge-uri diferite și se comportă diferit — ce poate face o revizuire și unde duce o legătură.

Înregistrarea declanșează un eveniment RepoAdded limitat la acest spațiu de lucru, care pornește pipeline-ul index_code pentru acel checkout. El este cel care populează graful de cod, astfel încât căutarea și analiza de impact au cu ce să răspundă.

Sunt indexate doar fișierele a căror limbă are o gramatică inclusă (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB și Ada). Vezi Caută cod cu graful de cod.

Fiecare rând are un buton Indexează codul. Apasă-l pentru a rula din nou indexatorul pentru acel checkout; cât timp rulează, butonul devine o afișare a progresului care arată fișierele terminate din total, împreună cu un control de anulare. Când se termină, se stabilizează într-o bifă cu numărul de simboluri sau într-un avertisment dacă rularea a eșuat.

Trage de mânerul de pe un rând. Ordinea pe care o stabilești este ordinea în care este citită fiecare listă de repo-uri din aplicație.

Pictograma de legătură de pe un rând deschide un editor pentru proprietarul GitHub și numele depozitului ale repo-ului — util când remote-ul a fost redenumit sau transferat.

  1. Deschide Setări → Spațiu de lucru → Depozite.
  2. Apasă pictograma coșului de gunoi de pe rând.
  3. Confirmă „Elimini depozitul din spațiul de lucru?”

Dialogul spune ce face: „name va fi eliminat din acest spațiu de lucru. Fișierele locale de pe disc nu sunt atinse.”

Eliminarea șterge rândul repo-ului din acest spațiu de lucru și propagă ștergerea către rândurile lui din graful de cod — simboluri, muchii, fișiere și puncte de verificare ale indexării —, plus fiecare permisiune de repo acordată pe membru asupra lui, legăturile lui spațiu-repo și înregistrările lui de checkout-uri izolate. Același checkout înregistrat într-un alt spațiu de lucru este un rând independent și nu este afectat. Worktree-urile de pe disc spre care indicau acele înregistrări nu sunt demolate de ștergere.