Summary
When pushing the checkpoint branch to a remote that has diverged, the current approach may create merge commits, producing a non-linear history on the checkpoint branch.
Solution
Replace merge-based alignment with rebase when syncing the local checkpoint branch with its remote counterpart. Handle rebase conflicts gracefully — abort and warn rather than blocking the user's push.
Why
Linear checkpoint history is easier to browse, reason about, and debug. Merge commits on a metadata-only branch add no value and create noise.
Source
Inspired by entireio/cli#863
Summary
When pushing the checkpoint branch to a remote that has diverged, the current approach may create merge commits, producing a non-linear history on the checkpoint branch.
Solution
Replace merge-based alignment with rebase when syncing the local checkpoint branch with its remote counterpart. Handle rebase conflicts gracefully — abort and warn rather than blocking the user's push.
Why
Linear checkpoint history is easier to browse, reason about, and debug. Merge commits on a metadata-only branch add no value and create noise.
Source
Inspired by entireio/cli#863