Expand description

Supporting library for git-branchless.

This is a UI component to interactively select changes to include in a commit. It’s meant to be embedded in source control tooling.

You can think of this as an interactive replacement for git add -p, or a reimplementation of hg crecord. Given a set of changes made by the user, this component presents them to the user and lets them select which of those changes should be staged for commit.


Testing helpers for interactive interfaces.


The state of a file to be recorded.
The state used to render the changes. This is passed into [Recorder::new] and then updated and returned with [Recorder::run].
UI component to record the user’s changes.
A changed line inside a Section.


An error which occurred when attempting to record changes.
A section of a file to be rendered and recorded.