Re: [PATCH v3 0/3] completion of 'git [-C <dir>] diff'

"D. Ben Knoble" <[email protected]> Thu, 6 Aug 2026 07:30:57 -0400
Newsgroups org.kernel.vger.git
Message-ID <CALnO6CAFYZb+x0W8sxLe8cicCuvhCZFrxiEJSRQs-aMF=cd14A@mail.gmail.com>
Hi Junio,

On Wed, Aug 5, 2026 at 3:44 PM Junio C Hamano <[email protected]> wrote:
>
> Here is another reroll.
>
> The primary motivation for this topic is that the command-line
> completion of 'git diff' does not handle paths (unlike 'git status'
> and 'git add') and instead relies on the default behavior of Bash
> command-line completion, which completes files in $PWD; this does
> not work at all with the '-C <directory>' option.
>
> Previous iterations of the patch taught the completion script to
> offer tracked paths that match the prefix before <TAB> to improve
> the situation.
>
> This time, we also complete untracked paths ourselves, so that even
> the following commands, which compare files like 'file[12]' that are
> not under the control of Git in a different directory, are
> completed:
>
>         $ git -C not-a-git-dir diff fil<TAB>
>         $ git -C not-a-git-dir diff --no-index fil<TAB>
>
>  1/3: completion: no-op refactoring of diff completion
>  2/3: completion: complete tracked paths for 'git diff'
>  3/3: completion: 'git diff' completes untracked paths as a last resort
>
>  contrib/completion/git-completion.bash | 69 +++++++++++++++-----------
>  t/t9902-completion.sh                  | 59 ++++++++++++++++++++++
>  2 files changed, 100 insertions(+), 28 deletions(-)
>

Left one comment on 3/3, but the rest looks good!

-- 
D. Ben Knoble