saphan store
Inspects the workspace's state store on disk: which processes hold its files, how its schema level compares with this binary's, and whether it is marked shared or scratch.
Inspects the workspace's state store on disk: which processes hold its files, how its schema level compares with this binary's, and whether it is marked shared or scratch.
saphan store holders
Names every process holding a store file and separates holders of the live store from holders of a file that is no longer live, who are writing into a file nobody will read. It only reports — it never opens the store and never moves, kills or repairs anything. Exit 0 means nobody holds a store file that is no longer live (with --before-swap: nobody holds any store file), 2 means holders are named, and 3 means no verdict was reached, which is not a pass; before trusting a zero, read the instrument: line (where /proc is used, a zero is not backed by a control check) and the remark: lines, which state what the measurement cannot tell you.
| flag | type | default | what it does |
|---|---|---|---|
--before-swap | bool | false | Answer "may this store be moved or replaced?" instead: any process holding any store file, live or not, makes it exit 2. |
saphan store mark
Records whether this workspace's store is shared or scratch, which decides which binaries may apply pending schema migrations to it. A shared store may be migrated only by a binary stamped as built from the product's mainline (saphan version prints its build channel; this channel is printed as develop); a binary built from any other source, from an uncommitted tree, or without a stamp is refused before anything changes. ⚠ After --shared, upgrading with a binary from another channel stops every command that needs the new schema level, until a mainline binary migrates the store or the mark is cleared with --scratch. Check the channel saphan version prints before you mark a store shared. Refused when this workspace has no store yet. ⚠ This is an owner act: it asks for the one-time code at your terminal, and no flag, environment variable or setting can write the mark. Rehearse it with saphan dry-run store mark --shared.
| flag | type | default | what it does |
|---|---|---|---|
--scratch | bool | false | Mark the store as scratch, clearing a shared mark so any binary may migrate it; an unmarked store already behaves this way. |
--shared | bool | false | Mark the store as shared, so only a binary stamped with the mainline build channel may apply migrations to it. |
saphan store status
Prints the store's schema level next to the level this binary knows, with the most recent applied migrations, and still answers when the two disagree, which is exactly when other commands refuse. It opens the store read-only, exits 0 whether or not the levels agree, and exits 2 only when the store is missing or unreadable.
| flag | type | default | what it does |
|---|---|---|---|
--ledger | int | 5 | How many of the most recent applied migrations to list (default 5); 0 lists none and -1 lists all. |
Global options apply to every command — see Every command.