jesseduffield.lazygit/pkg/gui/presentation
Stefan Haller df138a4c72 Show ? and ↓? in the branches list when the base is ambiguous
When a branch's fork point is reachable from more than one configured
main branch and the candidates disagree on the behind count, the
branches column was silently showing the config-order first candidate's
number — confidently asserting something we don't actually know. Worse,
"nothing" in the column means "up to date with the base", which may or
may not be true under ambiguity.

Compute behind values for every candidate (the fast path already had
them; the legacy path now does too via baseBranchCandidatesAndBehinds),
then classify:

  - all candidates agree → show that number (or nothing if 0)
  - some candidates 0, others not → "?" (we can't say if up to date)
  - all non-zero but differing → "↓?" (definitely behind, unknown amount)

Two sentinel constants on the Branch model (BehindBaseAmbiguousMaybeUpToDate
and BehindBaseAmbiguousDefinitelyBehind) encode these states in the
existing atomic.Int32 field via negative values; the renderer switches
on them.
2026-07-03 19:37:37 +02:00
..
authors Replace go-runewidth with uniseg 2025-12-23 16:49:16 +01:00
graph Use more widely-supported Unicode symbols for the commit graph 2026-05-04 13:06:29 +02:00
icons Show PR icons in branches list 2026-04-01 09:13:55 +02:00
branches.go Show ? and ↓? in the branches list when the base is ambiguous 2026-07-03 19:37:37 +02:00
branches_test.go Show ? and ↓? in the branches list when the base is ambiguous 2026-07-03 19:37:37 +02:00
commits.go Show -C for fixup todos in rebase if present 2026-01-28 10:15:48 +01:00
commits_test.go Use more widely-supported Unicode symbols for the commit graph 2026-05-04 13:06:29 +02:00
files.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
files_test.go Add user config gui.addRootItemInFileTree 2025-05-24 18:17:25 +02:00
item_operations.go Show inline waiting status when checking out a local branch 2024-03-17 07:53:38 +01:00
loader.go Move Loader to presentation package 2025-05-06 09:52:53 +02:00
reflog_commits.go Make Commit.Hash a getter for an unexported hash field 2025-04-29 14:57:15 +02:00
remote_branches.go Standardise on using lo for slice functions 2023-07-30 18:51:23 +10:00
remotes.go Move Loader to presentation package 2025-05-06 09:52:53 +02:00
stash_entries.go feat: add age on stash lines 2023-12-27 11:21:49 +01:00
status.go Make WorkingTreeState a struct, and add cherry-picking and reverting states 2025-04-20 15:53:17 +02:00
submodules.go refactor: use strings.Builder and strings.Repeat to simplify code 2025-12-03 18:34:21 +01:00
suggestions.go Standardise on using lo for slice functions 2023-07-30 18:51:23 +10:00
tags.go Move Loader to presentation package 2025-05-06 09:52:53 +02:00
worktrees.go Show branch name and detached HEAD in worktrees tab 2026-03-08 12:51:46 +01:00
worktrees_test.go Show branch name and detached HEAD in worktrees tab 2026-03-08 12:51:46 +01:00