Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Worktree, o jehož smazání nikdo nedokáže rozhodnout

Izolace se vytvoří levně, ale špatně se o ní uvažuje: nic nezaznamenává, k čemu worktree sloužil ani zda jeho práce přistála.

→ našel pět worktrees a neuměl říct, který z nich ještě záleží

cena, když k tomu dojde
střední
jak často
běžné

Okamžik

git worktree list vypíše pět položek. Dvě jsou zjevně aktuální. Další tři mají necommitnuté změny, větve s ne zcela popisnými názvy a žádný způsob, jak poznat, zda obsahují odpoledne práce, nebo vůbec nic.

Proč k tomu dochází

Vytvořit izolaci je jeden příkaz a zaznamenat záměr není práce nikoho. Worktree je adresář; adresář nenese žádný cíl, žádného vlastníka a žádný stav. Rozhodnutí smazat jej se proto vždy dělá na základě diffu, který je drahý na čtení a při čtení nejednoznačný.

Proč to lepší model nevyřeší

Nic neběží. Informace, která by otázku rozhodla — k čemu to bylo, jak daleko to došlo, zda bylo nahrazeno — nikdy nezapsala relace, která ji znala.

Co to stojí

Buď se změť ponechá, a pak každý audit opakuje tuto otázku, nebo se uklidí, a pak někdo občas smaže práci. Obojí se platí opakovaně a druhé se platí hlasitě.

Co Majordomus dělá

Záznam úlohy patří k jednomu checkoutu a nese cíl, deklarovaný rozsah a identitu gitu spočtenou při start. Načtení záznamu porovná tuto identitu se stavem gitu nyní a označí ji exact, advanced, diverged nebo different_context, takže worktree sám oznámí, že zastaral. Když relace skončí, handover zapíše cíl, aktuální stav a další krok, z nichž každý je povinný a neprázdný. watch hlásí každý drift, který vidí napříč záznamy, které tento repozitář drží.

Samotné worktrees mají jedinou topologii: checkout větve je na <repo>-wt/<branch>, odvozený z identity gitu a nikdy neregistrovaný, takže „kde je větev X“ je odvození, ne hledání. worktree.topology dává každému checkoutu postavení — canonical, misplaced, detached, ephemeral, missing — a každé větvi verdikt o způsobilosti k úklidu: sloučena do trunku a čistá nebo nevyzvednutá. Zbloudilý checkout se přenese domů s neuloženou prací, otiskovanou před a po; nástroj nic nemaže a seznam toho, co by mohlo pryč, je odvozený stav, na kterém má jednat člověk.

Před a po

before   $ git worktree list
         ../wt-3  8c31f0e  [fix/auth-2]        ...and then what?

after    $ majordomus handover --resolve --repo ../wt-3
         t-20260812…  diverged (-40 commits)
         # Objective: split the auth callback validation
         # Next Action: the legacy mobile form still needs a decision

Co nedělá

Nic nemaže ani nemerguje a nevidí klony na jiných strojích. Hlásí, co o sobě říká každý worktree; zda ponechat některý z nich, je rozhodnutí, které předává člověku.

Jak to vypadá

Konkrétní situace, jedna pro každé publikum. Každá je deklarována v záhlaví okamžiku, takže stav před a po jsou data, ne próza, od které by se stránka mohla odchýlit.

  1. Čtyřicet izolovaných checkoutů ai-native-team

    před
    Každý pracovník dostane worktree; po čtrnácti dnech jich jsou desítky, každý s necommitnutými změnami a bez záznamu o záměru.
    po
    Záznam aktivní úlohy každého worktree jmenuje její cíl, rozsah a head a jeho zpětné čtení říká, jak daleko se git od té doby posunul.
  2. Větev z minulého měsíce solo-builder

    před
    Větev `fix/auth-2` existuje; zda byla opuštěna, nebo dokončena, je otázka, na kterou pomalu odpoví jen diff.
    po
    Záznam říká `partial` s dalším krokem, nebo záznam neexistuje a větev je skutečně osiřelá — což je samo o sobě odpověď.
  3. Předání repozitáře zpět agency

    před
    Klient zdědí tucet větví a odstavec vysvětlení napsaný z paměti.
    po
    Každý nese záznam předávky s cílem, aktuálním stavem a další akcí a ledger říká, které byly dokončeny a s jakým výsledkem.

Jak to poznáte

Pozorovatelné příznaky, které tento okamžik deklaruje. Jsou dotazníkem na indexu a vstupem pro majordomus why diagnose; nic jiného je nedefinuje.

  • Worktree nebo větví je víc, než kdo dokáže zdůvodnit. many-worktrees
  • Nikdo nedokáže říct, zda daná větev nebo worktree ještě drží něco, co stojí za uchování. safe-to-delete
  • Pracovníci běžně vytvářejí izolované checkouty a nic nezaznamenává, k čemu. created-and-forgotten

Kde to v nástroji najdete

Vše níže je načteno z vlastního záhlaví tohoto okamžiku a ověřeno proti repozitáři. Neexistující název by neprošel validací.

příkazy, které na to odpovídají

schopnosti spustitelného souboru, které na to odpovídají

co dohlíží — odvozeno z tvrzení níže

tvrzení, která tuto stránku podpírají, a důkazy za každým z nich

pravidla, která jej řídí

  • majordomus.handover-integrity
  • majordomus.state-consistency
  • majordomus.isolated-parallelism
  • majordomus.one-worker-one-scope

případy užití, které ukazují cestu ven

Pokud vám tohle zní povědomě, další také

Co tento okamžik pojmenovává, co pojmenovává jeho a co sdílí jeho oblast, publikum nebo štítky. Druhé a třetí je odvozeno; zapsáno je jen první.

Všech 38 a jak souvisejí s nástrojem →

Prohledává názvy a popisy všech stránek, které tento web publikuje.