git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 2/3] completion: improve docs for using __git_complete

From
Roland Hieber <rhi@pengutronix.de>
Date
Apr 25, 2024, 10:18 UTC
Message-ID
<20240425101845.708554-2-rhi@pengutronix.de>
In-Reply-To
<20240425101845.708554-1-rhi@pengutronix.de>

It took me more than a few tries and a good lecture of __git_main to understand that the two paragraphs really only refer to adding completion functions for executables that are not called through git's subcommand magic. Improve the docs and be more specific.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
PATCH v3: new in v3, based on feedback from Junio C Hamano
---
 contrib/completion/git-completion.bash | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 4d63fb6eeaf7..566f32d412ce 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -31,15 +31,22 @@
 # Note that "git" is optional --- '!f() { : commit; ...}; f' would complete
 # just like the 'git commit' command.
 #
-# If you have a command that is not part of git, but you would still
-# like completion, you can use __git_complete:
+# If you have a shell command that is not part of git (and is not called as a
+# git subcommand), but you would still like git-style completion for it, use
+# __git_complete. For example, to use the same completion as for 'git log' also
+# for the 'gl' command:
 #
 #   __git_complete gl git_log
 #
-# Or if it's a main command (i.e. git or gitk):
+# Or if the 'gk' command should be completed the same as 'gitk':
 #
 #   __git_complete gk gitk
 #
+# The second parameter of __git_complete gives the completion function; it is
+# resolved as a function named "$2", or "__$2_main", or "_$2" in that order.
+# In the examples above, the actual functions used for completion will be
+# _git_log and __gitk_main.
+#
 # Compatible with bash 3.2.57.
 #
 # You can set the following environment variables to influence the behavior of
-- 
2.39.2
Previous: Roland HieberNext: Roland Hieber
Message 2 of 10 in “completion: add 'symbolic-ref'”
  1. 1/3 completion: add 'symbolic-ref'Roland Hieber, Apr 25, 2024
  2. 2/3 completion: improve docs for using __git_completeRoland Hieber, Apr 25, 2024
  3. 3/3 completion: add docs on how to add subcommand completionsRoland Hieber, Apr 25, 2024
  4. Kristoffer HaugsbakkApr 25, 2024
  5. Justin ToblerApr 25, 2024
  6. Junio C HamanoApr 25, 2024
  7. Justin ToblerApr 25, 2024
  8. Junio C HamanoApr 25, 2024
  9. Junio C HamanoApr 25, 2024
  10. Patrick SteinhardtApr 26, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.