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.

Osobní vrstva nemění nic sdíleného

Osobní vrstva nemění nic sdíleného

majordomus://rule/project.a-personal-layer-changes-nothing-shared@1aktivní installadopceobjevovánívynucování

odkazuje na něj

Zdůvodnění

Tým přijme nástroj na základě důkazů a důkazy plynou z používání. Do tohoto pravidla vývojář nemohl nástroj používat na skutečné práci, aniž by změnil soubory, které sdílí celý tým, takže se osobní zkouška stala návrhem dřív, než bylo co navrhovat. Ručně psaný exclude soubor, který zaskakoval za odpověď, nic neověřovalo, update a capture install přes něj psaly a spustitelný soubor, který vypisuje sledované soubory, jej nečetl. „Nezměnil jsem nic, co sdílíte“ je tvrzení o práci druhých a takové tvrzení kontroluje příkaz, který jej činí. ADR 0145.

Požadované chování

  1. Jeden kryt, vlastní gitu. Vrstva a každá cesta napsaná pro ni jsou vypsány v označeném bloku $GIT_COMMON_DIR/info/exclude, zakotvené, jedna na řádek. Řádky mimo blok se nikdy nemění. Sledovaný .gitignore se nezapisuje.
  2. Žádný uložený režim. mj_personal_active čte blok. Žádný klíč manifestu, klíč politiky, proměnná prostředí ani stavový soubor neříká „personal“.
  3. Pokrýt před zápisem. Zapisovatel mimo vrstvu volá mj_personal_guard <path>… před zápisem. Pod osobní vrstvou ochrana pokryje cestu i přípravný název vedle ní; jinde nedělá nic, takže volání je bezpodmínečné.
  4. Sledovaná cesta patří projektu. Odmítne se s exit kódem 15, dokud příkaz ještě plánuje, před zápisem jakékoli cesty a před jakoukoli radou, jak ji vynutit; dry run odmítne stejně. doctor takový soubor nedrží k razítku ani k zaváděcímu řádku.
  5. Ověřeno tam, kde se to tvrdí. init --personal skončí s kódem 10, když se stav po liší od stavu před. Instalátor stav porovnává sám. doctor hlásí OK personal nebo jmenuje, co je sledované, nepokryté či zobrazené.
  6. README projektu se nežádá, aby pojmenovalo bootstrap pod osobní vrstvou.
  7. Discovery je odvozené. Když je manifest na disku a nikde není sledován, executable prochází pracovní strom; žádná volba ho nevybírá.
  8. Sdílení je výslovné. init --extend --shared odstraní blok, zapíše dva řádky .gitignore prostého init, vypíše cesty, které nyní patří k commitu repozitáře, a nic necommituje. Odmítne vrstvu, která není osobní. Cesta, která je podle vlastního jména něčí osobní (*.local, *.local.*), zůstává pokryta.

Chování při selhání

test/cases/2979_a_personal_layer_changes_nothing_shared.sh selže, když v repozitáři, který už drží necommitnutou práci, init --personal, update, capture install nebo --extend změní git status nebo sledované .gitignore; když cíl projekce, který politika jmenuje, není v bloku; když update zapíše jakýkoli cíl po setkání se sledovaným; když doctor nejmenuje sledovaný soubor osobní vrstvy nebo neprojde README; když je sledovaná vrstva přijata jako osobní; když linked worktree vrstvu ukazuje; když spustitelný soubor nevypíše žádné pravidlo nesledované vrstvy; když --shared opustí blok, commituje nebo přijme vrstvu, která není osobní; nebo když instalátor ohlásí úspěch bez ověření. test/cases/86_installer_platform.sh selže, když parser instalátoru přijme volbu, kterou jeho --help nedokumentuje.

Ověření

MJ_TEST_JOBS=2 bash test/run.sh 2979_a_personal_layer_changes_nothing_shared 86_installer_platform
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --doc layer_is_untracked

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/a-personal-layer-changes-nothing-shared.v1.md
identity
project.a-personal-layer-changes-nothing-shared@1
dostupné také jako
Zdroj MCP majordomus://rule/project.a-personal-layer-changes-nothing-shared@1 · majordomus entity show rule/project-a-personal-layer-changes-nothing-shared-1 · GET /api/v1/entity?uri=majordomus://rule/project.a-personal-layer-changes-nothing-shared@1
v Cockpitu
/cockpit/objects/rule/project-a-personal-layer-changes-nothing-shared-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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