magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

sibling-checkout

A deny rule: it refuses a magus command relocated into another checkout, judging a tree nobody ships, and names what to run instead.

What it catches

A magus command relocated into another checkout, judging a tree nobody ships.

Why

A binary links the spell sources of the tree it was built from, so a verdict it reaches about a DIFFERENT checkout describes a tree that exists nowhere, and anything it regenerates lands there unmarked. Run magus from the workspace it belongs to and name the project as an argument; a different workspace is --root <path>.

Seeing it

A verdict names its rule in brackets, which is how you got here:

deny [sibling-checkout]: ...

magus describe rule sibling-checkout prints the same entry at a terminal, and magus describe rules lists every rule this workspace enforces.

See also

  • All rules - what this workspace enforces, deny first
  • The guard - how a verdict is reached and wired
guardrulessibling-checkoutdeny
Last updated (d966bfce)
Glossary

Workspace

The magus root directory that owns a set of projects and shared config; the unit magus operates over. See workspace.

Project

A directory magus recognizes as a unit of work (it has a magusfile); the unit of caching, scheduling, and dependency tracking. See workspace.

Spell

A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands. See spells.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate.

Conventions

Placeholders

Angle brackets mark a value you replace with your own - never type the brackets:

magus run <target>
magus completion <shell>    # e.g. bash, zsh, fish

<target>, <path>, <shell>, <name> and the like are stand-ins, not literal text.