Subject: [RFH] "git -C there add foo" completes, s/add/diff/ does not

From: Junio C Hamano <[email-masked]>
Date: Wed, 07 Feb 2024 10:34:56 -0800

As some of you may already know, I keep an untracked directory
called "Meta" at the top-level of the working tree of the Git
source tree.  This "Meta" directory is actually a single-branch
clone of the git.kernel.org/pub/scm/git/git.git that checks out
its "todo" branch, where files like whats-cooking.txt lives.

So, what I often would do is

    $ git -C Meta add whats-cooking.txt

after updating the draft of the next issue of the "What's cooking"
report.  The command line completion support for "git add" knows how
to complete this when I stopped typing the above after whats-" and
hit <TAB>.  It seems that __git_find_repo_path helper function that
notices "-C there" and discovers the $GIT_DIR, and _git_add helper
uses __git_complete_index_file that honors the discovered $GIT_DIR
to find paths in the correct index, which is wonderful.

But the same does not work for the step before I can decide to
actually "add" the contents, which is to "diff", i.e.

    $ git -C Meta diff whats-<TAB>

does not complete.

Anybody wants to take a crack at it?

Thanks.