Skip to main content

Module integrate

Module integrate 

Source
Expand description

The pure half of rk integrate: the transaction’s judgments and the evidence a local integration leaves behind.

This module spawns nothing. It decides what a branch name, a seat, a pair of observed tips, and a stored ledger permit, and it renders and parses the ledger. crate::commands::integrate is the half that runs git and pre-commit.

The evidence is clone-local, under the common git directory, because a local integration is a fact about one checkout: the branch it names exists in that clone alone, the prune verbs that read it act in that clone alone, and a committed file would carry a per-checkout fact into every other clone. The common git directory rather than a worktree’s own is what makes one ledger serve every linked seat.

SATISFIES git:a-local-integration-is-a-transaction

Structs§

Entry
One local integration, as the prune verbs read it.
Ledger
Every local integration this clone recorded, newest last.

Enums§

TrunkState
How the local trunk stands against its remote.

Constants§

LEDGER_PATH
The ledger’s path below the common git directory.

Functions§

refuse_branch_name
Why a branch name cannot be integrated, or None where it can.
refuse_moved_trunk
Why the gate’s verdict blocks the integration, or None.
refuse_trunk_state
Why a diverged trunk cannot be integrated onto.
release_intent
The release intent a Conventional Commit message states, as the phrase a warning names it by, or None for a type that states none.
short
The seven-character form a report shows.
trunk_state
Where the local trunk stands against the remote tip, if any.
uncounted_release
The warning for a release-intent message over a change the package’s listing does not reach: release-plz will neither list the commit nor count it toward a release.