Thread (6 messages) flat view 6 messages, 2 authors, 13h ago

Re: [PATCH] completion: complete tracked paths for 'git diff'

From: Junio C Hamano <hidden>
Date: 2026-08-03 01:07:34

Junio C Hamano [off-list ref] writes:
When completing arguments for 'git diff', _git_diff() delegates to
__git_complete_revlist_file(), which only completes revision
references.  This is good [*], as mixing both revs and paths in a
single list to have the user pick is simply too confusing.

If no reference matches, or if '--' is given, however, _git_diff()
leaves COMPREPLY empty. Bash then falls back to default filename
completion in $PWD. This fails when 'git -C <path>' is used because
$PWD is not the target repository.

Update _git_diff() to use __git_complete_index_file() when '--' is
present, or when revision reference completion yields no matching
candidates, so that tracked paths are offered as candidates.
This changes behavior even in the case where '-C <there>' is not
used.  The new behavior omits untracked paths from suggestions,
which is clearly better behavior.

I'll add the above paragraph to the proposed log message when I
queue this on 'seen'.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help