Hoppa till innehåll

Lägg till repos i en arbetsyta

Den här guiden visar hur du registrerar en Git-utcheckning i en arbetsyta, indexerar om den och tar bort den igen.

Repos är knutna till arbetsytan. Det finns inget globalt register och inget länkningssteg: att lägga till ett repo och att placera det i en arbetsyta är samma handling. Samma utcheckning som registreras i två arbetsytor blir två oberoende rader med två olika id:n — mellan arbetsytor är ett repos identitet dess filsökväg, aldrig dess id.

En mapp kan bara registreras om alla tre av följande villkor är uppfyllda:

  1. Den ligger inuti ett Git-worktree.
  2. Det worktreet har en origin-remote.
  3. origin-remoten pekar på en forge som stöds: github.com, gitlab.com eller bitbucket.org.

Allt annat avvisas vid registreringen med ett uttryckligt meddelande: “Folder is not inside a git work tree.”, “No origin remote configured for this repository.” eller “The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).”. Det finns inget läge som bara är lokalt.

Forgen läses från remoten och lagras på repot — du väljer den aldrig själv. En arbetsyta kan innehålla repos från alla tre samtidigt, och var och en kontaktas via sitt eget API med sin egen autentiseringsuppgift. GitLabs nästlade namnrymder bevaras, så gitlab.com/group/subgroup/project registreras med ägaren group/subgroup och namnet project.

Mappen måste också ligga på den maskin som kör cc_server, inuti en av serverns --repo-roots-kataloger. Den tillåtelselistan har som standard hemkatalogen för serverns användare, och att bläddra ovanför en rot avvisas.

  1. Öppna Inställningar → Arbetsyta → Arkiv (/workspaces/<id>/settings/workspace/repositories).
  2. Klicka på Lägg till arkiv.

Dialogen är en navigerbar utforskare över serverns filsystem, inte ditt eget. Flödet är detsamma på dator, webb och telefon, eftersom en inbyggd mappväljare skulle välja en mapp på fel maskin.

  1. Navigera inom serverns konfigurerade rötter. Mappar som är Git-utcheckningar markeras.
  2. Kryssa i hur många som helst av dem. Markeringen finns kvar medan du navigerar, så du kan samla utcheckningar från flera mappar.
  3. Registrera dem i en och samma sats.

Ett misslyckat val tar aldrig bort resten av satsen — du får de id:n som skapades plus ett fel per sökväg för var och en som avvisades. Om du registrerar en sökväg som redan finns i den här arbetsytan får du tillbaka det befintliga repot i stället för att skapa en dubblett.

Varje registrerat repo visas i listan med sitt owner/name, ett märke som anger forgen och dess sökväg på servern. GitHub-repos visar dessutom ägarens avatar; de andra forges har ingen gissningsbar URL för ägaravatar, så de faller tillbaka på initialer.

Forgemärket spelar roll i en blandad arbetsyta: två repos kan båda heta acme/web på olika forges, och de beter sig olika — vad en granskning kan göra, och vart en länk leder.

Registreringen utlöser en RepoAdded-händelse som är knuten till den här arbetsytan, vilket startar pipelinen index_code för den utcheckningen. Det är vad som fyller kodgrafen, så att sökning och påverkansanalys har något att svara med.

Bara filer vars språk har en medföljande grammatik indexeras (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB och Ada). Se Sök kod med kodgrafen.

Varje rad har en knapp för Indexera kod. Klicka på den för att köra indexeraren igen för den utcheckningen; medan den körs blir knappen en förloppsvisning som visar antalet klara filer av totalt antal, med en avbryt-kontroll. När den är klar övergår den till en bock med antalet symboler, eller en varning om körningen misslyckades.

Dra i handtaget på en rad. Ordningen du ställer in är den ordning som varje repolista i appen läser ut.

Länkikonen på en rad öppnar en redigerare för repots GitHub-ägare och reponamn — användbart när remoten har bytt namn eller flyttats.

  1. Öppna Inställningar → Arbetsyta → Arkiv.
  2. Klicka på papperskorgsikonen på raden.
  3. Bekräfta “Ta bort arkiv från arbetsytan?”.

Dialogen säger vad den gör: “name tas bort från den här arbetsytan. De lokala filerna på disk rörs inte.”

Borttagningen tar bort reporaden från den här arbetsytan och kaskaderar bort dess rader i kodgrafen — symboler, kanter, filer och indexkontrollpunkter — plus varje repobehörighet per medlem på den, dess yta-repo-kopplingar och dess poster för isolerade utcheckningar. Samma utcheckning som är registrerad i en annan arbetsyta är en oberoende rad och påverkas inte. De worktrees på disk som posterna pekade på rivs inte ner av borttagningen.