Update a pin that is behind with u; switch fast-forwards

`u` moves the pin of the selection to the tip of its ref when the pin is
only behind it: a switch to that branch with exactly the tip the row
shows, nothing fetched; if the ref moved meanwhile, nothing happens. On
the superproject it fast-forwards the branch to its upstream and restores
the submodules (git pull --ff-only from the last fetch).

Switch now fast-forwards a local branch that is only behind the chosen
remote branch, unless another worktree has it checked out, and keeps a
checked-out branch that tracks it under another name. A branch with
commits of its own is still never moved.

Stage pin is dropped: switching to the branch already stages it. The
detail pane's palette wraps instead of cutting off keys. Add D29 and F59.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-24 22:39:18 +02:00
co-authored by Claude Opus 5.5
parent 99f1ba2bec
commit fbd233f58d
16 changed files with 686 additions and 105 deletions
+7 -1
View File
@@ -156,7 +156,13 @@ commit hashes. It doesn't answer the questions users actually have:
with everything below; HEAD ends on the branch. It asks for confirmation
only if something would be lost. See [actions.md](actions.md#switch-branch).
Stage pin is drafted in [actions.md](actions.md#stage-pin).
- **F59** `u` updates the pin of the selection to the tip of its ref, when
the pin is only behind it (`origin/main ↓2`): a switch (**F57**) to that
branch, with exactly the tip the row shows. For the superproject that is
a fast-forward of its branch to its upstream (`git pull --ff-only`). Nothing is fetched; if
the ref moved meanwhile, nothing happens. A local branch that is only
behind is fast-forwarded, in a switch too. Otherwise the footer says why
not. See [actions.md](actions.md#update-pin).
## Usage