warpdotdev / warpdotdev/warp

Git branch autocomplete for diff + log commands

Open
#3,805 3 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:completions bug ready-to-implement triaged
Dominant language
Rust
Stars
65.1k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

Discord username (optional)

No response

Describe the bug

the git checkout command's autocomplete is amazing, and was the #1 thing that got me to give Warp a shot in the first place. However, both git log and git diff do not allow for branch autocompletion.

For log, the autocomplete box has a list of commitishes but no branch options
For diff, the behavior is a little better -- it will include locally changed files in the autocomplete box, but after that it is again just a list of commit SHAs

To reproduce

Type git log or git diff and observe the autocomplete box options

Expected behavior

Every git command where branches are relevant should include branches in the autocomplete options list. git log should include branches at the top of the list, while git diff should include branches after locally changed files.
For both scenarios, the same fuzzy-search behavior that git checkout uses should be applied

Screenshots

No response

Operating system

MacOS

Operating system and version

14.0

Shell Version

zsh 5.9

Current Warp version

v0.2023.10.17.08.03.stable_02

Regression

No, this bug or issue has existed throughout my experience using Warp

Recent working Warp date

never

Additional context

To ensure this was not an issue specific to my zsh config, I also tested using a warpified bash shell opened from within my zsh environment, and the behavior was identical

Does this block you from using Warp daily?

No

Is this a Warp specific issue? (i.e. does it happen in Terminal, iTerm, Kitty, etc.)

Yes, this I confirmed this only happens in Warp, not other terminals.

Warp Internal (ignore): linear-label:b8107fdf-ba31-488d-b103-d271c89cac3e

None

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the autocomplete behavior with git log and git diff in Warp, then locate the existing git checkout autocomplete implementation and compare how commitishes, branches, and changed files are collected. Apply the same fuzzy-search behavior to the requested command contexts, with branches first for log and after changed files for diff, and verify both commands expose the expected branch options.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, git, rust, zsh
Domain
cli, developer-experience
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.