Feature Request: Interactive Commit Log Selector
Is your feature request related to a problem? Please describe.
Currently, if a user wants to diff against a specific older commit or branch, they have to manually find the Git SHA or branch name via git log and pass it as a CLI argument (e.g., difi HEAD~3 or difi 5561c25). This breaks the flow of the TUI and relies on external commands.
Describe the solution you'd like
An interactive, scrollable commit history view integrated directly into difi.
If a user runs difi --log (or presses a specific key from the empty state), they should be presented with a clean, Bubble Tea list component showing their recent Git history.
Workflow:
- Run
difi --log
- Scroll through recent commits (
j/k)
- Press
Enter on a commit
difi immediately opens the standard side-by-side view, diffing the working tree (or HEAD) against that selected commit.
Describe alternatives you've considered
Relying strictly on CLI arguments (difi <target>). While this is Unix-y and fast for power users who know their SHAs, it lacks the discoverability and visual ease of a TUI.
Additional context
- We can likely leverage the
github.com/charmbracelet/bubbles/list component for the UI.
- It needs to support Mercurial (
hg log) to maintain feature parity.
- The UI should remain minimal to match the "calm, focused" philosophy of the project.
Feature Request: Interactive Commit Log Selector
Is your feature request related to a problem? Please describe.
Currently, if a user wants to diff against a specific older commit or branch, they have to manually find the Git SHA or branch name via
git logand pass it as a CLI argument (e.g.,difi HEAD~3ordifi 5561c25). This breaks the flow of the TUI and relies on external commands.Describe the solution you'd like
An interactive, scrollable commit history view integrated directly into
difi.If a user runs
difi --log(or presses a specific key from the empty state), they should be presented with a clean, Bubble Tealistcomponent showing their recent Git history.Workflow:
difi --logj/k)Enteron a commitdifiimmediately opens the standard side-by-side view, diffing the working tree (orHEAD) against that selected commit.Describe alternatives you've considered
Relying strictly on CLI arguments (
difi <target>). While this is Unix-y and fast for power users who know their SHAs, it lacks the discoverability and visual ease of a TUI.Additional context
github.com/charmbracelet/bubbles/listcomponent for the UI.hg log) to maintain feature parity.