Skip to content

refactor(git): model refs as domain types instead of strings - #6

Merged
greenbugx merged 1 commit into
mainfrom
refactor/git
Aug 24, 2026
Merged

greenbugx merged 1 commit into
mainfrom
refactor/git

Conversation

@greenbugx

Copy link
Copy Markdown
Owner

Replace the string-and-flag ref representation with a tagged union:
RefName wraps a ref's short name, Branch encodes local vs remote as
variants rather than a separate kind field, and Ref composes the two
so a badge's local/remote/tag identity lives in exactly one place.
RefKind and RefBadge are gone.

Move refs-pane flattening out of the Git layer: RepoRefs::rows and
RefRow become app::state::ref_pane_rows and RefPaneRow, since the
"Local Branches / Remote Branches / Tags" sections are presentation,
not domain. RepoRefs now carries one ordered branches vec instead of
separate local and remote lists.

No behavior change: the same refs are discovered, named, ordered and
rendered as before.

@greenbugx
greenbugx merged commit 7d4cba6 into main Aug 24, 2026
1 check passed
@greenbugx
greenbugx deleted the refactor/git branch August 24, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant