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

merge-side-checkout

A deny rule: it refuses a checkout of one merge side over a conflicted file, which discards the merge, and names what to run instead.

What it catches

A checkout of one merge side over a conflicted file, which discards the merge.

Why

It reads like "undo my edit to this file" and is not: during a merge the working-tree copy IS the merge, and this replaces it wholesale with one side. Measured here: git checkout MERGE_HEAD -- magusfile.buzz during a conflict resolution silently dropped the branch's own half of a merged feature. Nothing failed, the gate stayed green, and the feature could not fire until someone read the code days later. For a generated file, magus vcs resolve settles every conflicted one by regenerating. To take one side deliberately, say which: git checkout --ours or --theirs. To keep the merged result, it is already in the file.

Seeing it

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

deny [merge-side-checkout]: ...

magus describe rule merge-side-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
guardrulesmerge-side-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.

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. See targets.

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Buzz

The language magusfiles are written in (the .buzz engine). See engines.

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

This page uses none of the site's convention markers. The full set is on the conventions page.