TurtleGit for Mac

View Markdown source ↗

Rebase and advanced Cherry Pick message editing

Pinned source: TortoiseGit 7338078f8ddd924b8cddee35f512f2286072136d. This connected family covers stopped message editing and the checked amendment handoff in IDD_REBASE / IDD_REBASECHERRYPICK; it does not complete either resource or the complete port.

Source behavior and native implementation

As a macOS recovery adaptation, the inherited private/default preference domain stores one draft under the repository's canonical path. Its Codable identity includes original HEAD, branch, onto, stopped occurrence, step, applied HEAD and phase, comparing Git names by UTF-8 identity. Same-phase reopening restores even an empty draft. A changed HEAD or stopped occurrence rejects it; completing or aborting clears it. User text is never used as a Git argument. The draft is not an approval token: every continuation still validates actual replay state/HEAD.

The owned preparation has cancellation, access retention and preparation counters through the actual return. A cancelled write is recovered as a durable handoff, not reported as an applied commit. Commit sheets inherit the Rebase owner's alpha before presentation; the existing Commit owner manages its progress, message/author helpers and cleanup. Ordinary parent Close/Quit respects owned preparation and child windows; forced retirement cancels work and closes children.

Grouped validation

qa/rebase-message-edit-native-2026-10-18.swift exports RebaseMessageEditVerification.verify() for the grouped receiver. It uses private repository/preferences, hidden owned windows and the app's editor helper. It exercises advanced Cherry Pick with attribution, author/date context, draft refresh/reopen, actual checked Commit amend cancellation and acceptance, applied parent/author/date preservation, next-Edit message/undo/binding retirement, empty draft preservation and successful cleanup. Failure closes/drains owners and aborts only the test-owned replay.

RebaseMessageEditingTests adds three Core cases: clean/untracked/cancelled preparation; durable checked amendment with author/date options, excluded index preservation and reopening; and unstarted cancellation plus stale-HEAD draft identity. Existing snapshot, conflict-selection, Split and Squash coverage remains applicable. Results belong to the parent's grouped operation-workflow checkpoint; this implementation agent ran no builds or tests.

Remaining boundaries

This is not a visual audit of every Rebase control. The connected amend-failure recovery family covers the clean-worktree Retry/Ignore decision separately, including its own validation boundary. Windows-only taskbar and Scintilla implementation details use existing macOS progress/editor controls. Physical acceptance, signed deployment and complete hosted CI are not established by this focused family fixture.