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.

Instalace do repozitáře, který už instalaci má, je odmítnuta

majordomus init vytvoří .ai/. Pokud už existuje, init odmítne s kódem 15 a řekne to. Neexistuje příznak, který cokoli přepíše: --extend doplní, co v kostře chybí, a nic nepřepíše, takže politika, profil nebo pravidlo, které repozitář upravil, zůstane přesně tak, jak je, a .ai/local/state/, kde žijí záznam úlohy, rozhodnutí, otevřené otázky, předávky a ledger, žádný běh initu nikdy nepřepíše.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Co to znamená

majordomus init vytvoří .ai/. Pokud již existuje, init odmítne s kódem 15 a řekne to. Neexistuje příznak, který cokoli přepisuje: --extend přidá, co v kostře chybí, a nic nepřepíše, takže politika, profil nebo pravidlo, které repozitář upravil, zůstává přesně tak, jak je, a .ai/local/state/, kde žijí záznam úlohy, rozhodnutí, otevřené otázky, předávky a kniha, žádný běh init nikdy nepřepíše.

Repozitář, jehož projektová data stále žijí pod .majordomus/, tedy v rozvržení před .ai, je rovněž odmítnut, s uvedením majordomus migrate jako cesty vpřed; init nevytváří druhé rozvržení vedle prvního.

Princip

lib/init.sh vyřeší rozvržení dříve, než cokoli zkopíruje z share/skeleton/. Na rozvržení .ai bez --extend odmítne; s --extend se každý soubor kopíruje jedním pomocníkem, který se vrátí bez zápisu, pokud cíl existuje, a vypíše, co vytvořil. Ignorovací řádek .ai/local/ se do .gitignore přidá jednou, jak často init běží.

Jak to vidět

majordomus init
majordomus init          # majordomus: .ai/ already exists in … (use --extend to add what is missing; nothing is overwritten)
echo $?                  # 15
rm .ai/repo/workflows/plan.md
majordomus init --extend # created .ai/repo/workflows/plan.md, and nothing else changed

Co nepokrývá

--extend obnoví soubor, který kostra dodává a repozitář smazal, což je správná odpověď pro chybějící soubor a špatná pro soubor smazaný záměrně; smazání, které má platit, je projektové rozhodnutí k zaznamenání, ne něco, co init může vědět.

Proč existuje

Čtyři dozorové nástroje ve zdrojovém prostředí byly nainstalovány, běžely dny a byly opuštěny; jedním z důvodů bylo, že přeinstalování čehokoli tiše vynulovalo to málo stavu, který měly.

Detail vykreslený z docs/claims/init-refuses.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Instalace do repozitáře, který už instalaci má, je odmítnuta

    Vytvořeno na Politika.

  2. 2 · kanonické tvrzení

    init-refusesdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/CLI.md

  3. 3 · implementace

    lib/init.sh · majordomus init

  4. 4 · test a scénáře

    Test: test/cases/01_init.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 01_init

Související tvrzení stejná implementace

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