Přeskočit na obsah

Přidejte repozitáře do pracovního prostoru

Tenhle návod ukáže, jak zaregistrovat Git checkout do pracovního prostoru, znovu ho indexovat a zase odebrat.

Repozitáře jsou vázané na pracovní prostor. Globální registr není a není ani samostatný krok propojení: přidat repozitář a vložit ho do pracovního prostoru je jeden úkon. Stejný checkout zaregistrovaný ve dvou pracovních prostorech dá dva samostatné řádky se dvěma různými id. Napříč pracovními prostory je identitou repozitáře cesta na souborovém systému, nikdy jeho id.

Složku zaregistruješ jen tehdy, když platí všechny tři podmínky:

  1. Leží uvnitř git work tree.
  2. Ten work tree má remote origin.
  3. Remote origin míří na podporovanou forge: github.com, gitlab.com nebo bitbucket.org.

Všechno ostatní se při registraci odmítne s výslovnou zprávou: „Folder is not inside a git work tree.“, „No origin remote configured for this repository.“ nebo „The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).“. Režim jen pro místní složku není.

Forge se přečte z remote a uloží se k repozitáři sama. Pracovní prostor může držet repozitáře ze všech tří najednou a s každou se mluví přes její API a její přihlašovací údaj. Vnořené jmenné prostory GitLabu se zachovají, takže gitlab.com/group/subgroup/project se zaregistruje jako vlastník group/subgroup a název project.

Složka musí navíc ležet na stroji, kde běží cc_server, v některém z adresářů --repo-roots toho serveru. Seznam povolených je ve výchozím stavu domovský adresář uživatele serveru a procházení nad kořen se odmítne.

  1. Otevři Nastavení → Pracovní prostor → Repozitáře (/workspaces/<id>/settings/workspace/repositories).
  2. Klikni na Přidat repozitář.

Dialog je prohlížeč souborového systému serveru. Stejný postup je na počítači, na webu i v telefonu, protože nativní výběr složky by sáhl na špatný stroj.

  1. Pohybuj se v nakonfigurovaných kořenech serveru. Složky, které jsou git checkouty, mají příznak.
  2. Zaškrtni jich, kolik chceš. Výběr se drží i při přechodu mezi složkami, takže checkouty posbíráš z několika míst.
  3. Zaregistruj je najednou.

Když jeden výběr selže, zbytek dávky zůstane. Dostaneš id, která vznikla, a u každé odmítnuté cesty zvlášť chybu. Opakovaná registrace cesty, která v tomhle pracovním prostoru už je, vrátí existující repozitář.

Každý zaregistrovaný repozitář se v seznamu ukáže se svým owner/name, odznakem forge a cestou na serveru. Repozitáře na GitHubu navíc ukážou avatar vlastníka. U ostatních forge se URL avataru vlastníka nedá odhadnout, takže se ukážou iniciály.

V namíchaném pracovním prostoru na odznaku forge záleží: dva repozitáře se můžou jmenovat acme/web na různých forge a chovají se jinak, v tom, co umí revize a kam vede odkaz.

Registrace vyvolá událost RepoAdded vázanou na tento pracovní prostor a ta spustí pipeline index_code pro daný checkout. Tím se naplní graf kódu, takže vyhledávání a analýza dopadu mají z čeho odpovídat.

Indexují se jen soubory jazyka, který má dodanou gramatiku (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB a Ada). Viz Hledejte kód v grafu kódu.

Znovu indexuj repozitář

Sekce “Znovu indexuj repozitář”

Každý řádek má tlačítko Indexovat kód. Kliknutím znovu spustíš indexer pro ten checkout. Po dobu běhu se z tlačítka stane údaj o průběhu, hotové soubory z celkového počtu, a vedle něj zrušení. Po dokončení se změní na ikonu zaškrtnutí s počtem symbolů, nebo na varování, když běh selhal.

Změň pořadí repozitářů

Sekce “Změň pořadí repozitářů”

Přetáhni úchyt na řádku. Pořadí, které nastavíš, je pořadí každého seznamu repozitářů v aplikaci.

Ikona odkazu na řádku otevře editor vlastníka a názvu repozitáře na GitHubu. Hodí se, když se remote přejmenoval nebo převedl.

  1. Otevři Nastavení → Pracovní prostor → Repozitáře.
  2. Klikni na ikonu koše na řádku.
  3. Potvrď „Odebrat repozitář z pracovního prostoru?“

Dialog říká, co udělá: „name bude odebrán z tohoto pracovního prostoru. Místní soubory na disku zůstanou nedotčené.“

Odebrání smaže řádek repozitáře z tohoto pracovního prostoru a kaskádově i řádky jeho grafu kódu: symboly, hrany, soubory a checkpointy indexu. Smaže se i každé přidělení na ten repozitář pro jednotlivé členy, vazby prostoru na repozitář a záznamy izolovaných checkoutů. Stejný checkout zaregistrovaný v jiném pracovním prostoru je samostatný řádek a smazání se ho netýká. Worktree na disku, na které ty záznamy ukazovaly, mazání nestrhne.