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.

Dvě relace v jednom checkoutu, které si šlapou na paty

Dva pracovníci v jednom pracovním stromu se navzájem vidí jen jako nevysvětlené změny souborů a každý druhého bere jako šum.

→ měli jste dvě relace zapisující do jednoho checkoutu, aniž o tom jedna věděla

cena, když k tomu dojde
vysoká
jak často
občasné

Okamžik

Dvě okna asistentů jsou otevřena na stejném adresáři. Každé vidí, jak se pod ním objevují a mění soubory, které nezapsalo. Každé dělá přesně to, oč bylo požádáno. Výsledný commit obsahuje obě práce a nevysvětluje ani jednu.

Proč k tomu dochází

Pracovní strom nezná pojem vlastníka. Nic v objektech gitu nenamítá proti dvěma zapisovatelům a signál, který by jednomu workerovi řekl o druhém — aktivní úloha, její rozsah, její worktree — ve výchozím stavu neexistuje. Otevřít druhé okno nic nestojí a často je to správné; chybí záznam, který to dělá bezpečným.

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

Model světa každého workeru je správný pro to, co dokáže pozorovat. Pozoruje, že se soubor mění, a nemá žádný kanál, kterým by se ten druhý worker mohl přihlásit.

Co to stojí

Prokládané commity, které nelze vrátit nezávisle, ověřování nad stromem obsahujícím něčí rozpracovanou změnu a čas strávený zjišťováním, kdo z dvou lidí či workerů za selhání odpovídá.

Co Majordomus dělá

Na checkout je aktivní jedna úloha: druhý start se odmítne a jmenuje úlohu, která jej drží, dokud první není předána nebo dokončena. Každá úloha deklaruje svůj rozsah a check a finish selžou na souborech dotčených mimo něj. Napříč checkouty se ostatní worktrees čtou z git worktree list a překrývající se aktivní rozsah se hlásí při start. Kde se k sdílenému serveru tohoto repozitáře připojí několik klientů AI, každý může oznámit, na čem pracuje, a číst, co oznámili ostatní.

Před a po

before   window 1: editing lib/auth      window 2: editing lib/auth
         (neither knows)

after    $ majordomus start "tidy the token parser" --scope lib/auth
         refused: task t-20260906044337 is active in this checkout
                  (hand it over or finish it first)

Co nedělá

Nezamyká souborový systém a nikomu nebrání v úpravách. Odmítne zaznamenat druhou souběžnou úlohu v jednom checkoutu a hlásí překryv napříč worktree; rozhodnutí o koordinaci zůstává na lidech.

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. Dvě okna, jeden adresář solo-builder

    před
    Pro rychlou opravu se otevře druhá relace; obě relace commitují do jednoho stromu a historie proloží dva nesouvisející kusy práce.
    po
    Na jeden checkout je aktivní jedna úloha: druhý `start` se odmítne, dokud se první nepředá nebo neskončí, a řekne, která úloha jej drží.
  2. Worker a člověk ai-native-team

    před
    Noční pracovník stále běží, když ráno někdo začne upravovat tentýž strom.
    po
    Záznam aktivní úlohy jmenuje checkout a rozsah; překryv se hlásí dřív, než druhá práce začne.
  3. Sdílený build box agency

    před
    Dva lidé na jednom checkoutu vytvoří commit, který obsahuje obě jejich změny a ani jeden jejich záměr.
    po
    Rozsah se deklaruje po úlohách a `check` odmítne soubory mimo něj, takže směs se zachytí před commitem.

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.

  • Soubory se pod relací změnily, zatímco pracovala, a nic neřeklo proč. files-changing-underneath
  • Více než jedno okno asistenta míří na tentýž pracovní adresář. two-windows-one-repo
  • Pracovní strom obsahuje necommitnuté změny z více než jednoho kusu práce. conflicting-uncommitted

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.one-worker-one-scope
  • majordomus.scope-integrity
  • majordomus.state-consistency

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.