PromoteReport

Result of Repo.apply_promote.

Usage

Source

PromoteReport(
    fast_forwarded=dict(),
    merged=dict(),
    skipped=list(),
    refused=dict(),
    held=dict(),
    conflicts=dict(),
    kept_forks=dict(),
    trunk_moved=None,
    trunk_held=None,
    plan=None
)

Parameter Attributes

fast_forwarded: dict[str, State] = dict()

Key -> the base branch’s new state after a fast-forward.

merged: dict[str, State] = dict()

Key -> the base branch’s new state after a native merge.

skipped: list[str] = list()

Keys whose base already matched the target, or that had nothing to promote.

refused: dict[str, str] = dict()

Key -> why tether would not move the base (with the system’s own recipe).

held: dict[str, str] = dict()

Key -> what would have happened: a fast-forward or merge not performed because another object was refused and no keys were named. A bookmark is planned whole or not at all; the plan is the atomic unit – once applying, each system’s fast-forward stands on its own (see the caveats).

conflicts: dict[str, list[str]] = dict()

Key -> conflicting units reported by a merge that was rolled back.

kept_forks: dict[str, str] = dict()

Key -> why the working branch was not reset onto a merge result: it gained writes between the plan and the merge, and those are never discarded; commit them and promote again.

trunk_moved: str | None = None

The commit the trunk bookmark now points at, when every promoted object fast-forwarded and nothing was refused: the bookmark’s commit describes what the upstream branches now hold, so main is set to it.

trunk_held: str | None = None

Why the trunk bookmark was left where it is although the data landed: it gained commits since the plan, and it is never moved backwards.

plan: Plan | None = None