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

[PATCH v2] completion: improve doc for complex aliases

From
Philippe Blain via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 12, 2023, 17:02 UTC
Message-ID
<pull.1585.v2.git.1694538135853.gitgitgadget@gmail.com>
In-Reply-To
<pull.1585.git.1694274592854.gitgitgadget@gmail.com>
From: Philippe Blain <levraiphilippeblain@gmail.com>

The completion code can be told to use a particular completion for aliases that shell out by using ': git <cmd> ;' as the first command of the alias. This only works if <cmd> and the semicolon are separated by a space, since if the space is missing __git_aliased_command returns (for example) 'checkout;' instead of just 'checkout', and then __git_complete_command fails to find a completion for 'checkout;'.

The examples have that space but it's not clear if it's just for style or if it's mandatory. Explicitly mention it.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
    completion: improve doc for complex aliases
    
    Changes since v1:
    
     * fixed the typo pointed out by Eric
     * added an explanation of why the space is mandatory, as suggested by
       Linus
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1585%2Fphil-blain%2Fcompletion-shell-aliases-doc-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1585/phil-blain/completion-shell-aliases-doc-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1585
Range-diff vs v1:
 1:  b3621ed25f0 ! 1:  96a0867c5ad completion: improve doc for complex aliases
     @@ Commit message
          The completion code can be told to use a particular completion for
          aliases that shell out by using ': git <cmd> ;' as the first command of
          the alias. This only works if <cmd> and the semicolon are separated by a
     -    space. The examples have that space but it's not clear if it's just for
     -    style or if it's mandatory.
     +    space, since if the space is missing __git_aliased_command returns (for
     +    example) 'checkout;' instead of just 'checkout', and then
     +    __git_complete_command fails to find a completion for 'checkout;'.
      
     -    Explicitely mention it.
     +    The examples have that space but it's not clear if it's just for
     +    style or if it's mandatory. Explicitly mention it.
      
          Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
      
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dc95c34cc85..659df570496 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -28,6 +28,7 @@
 # completion style.  For example '!f() { : git commit ; ... }; f' will
 # tell the completion to use commit completion.  This also works with aliases
 # of form "!sh -c '...'".  For example, "!sh -c ': git commit ; ... '".
+# Be sure to add a space between the command name and the ';'.
 #
 # If you have a command that is not part of git, but you would still
 # like completion, you can use __git_complete:

base-commit: 23c56f7bd5f1667f8b793d796bf30e39545920f6
-- 
gitgitgadget
Previous: Philippe BlainNext: Junio C Hamano
Message 5 of 12 in “completion: improve doc for complex aliases”
  1. completion: improve doc for complex aliasesPhilippe Blain via GitGitGadget, Sep 9, 2023
  2. Eric SunshineSep 10, 2023
  3. Linus ArverSep 12, 2023
  4. Philippe BlainSep 12, 2023
  5. completion: improve doc for complex aliasesPhilippe Blain via GitGitGadget, Sep 12, 2023
  6. Junio C HamanoSep 13, 2023
  7. Linus ArverSep 14, 2023
  8. Linus ArverSep 14, 2023
  9. completion: loosen and document the requirement around completing aliasJunio C Hamano, Sep 20, 2023
  10. Junio C HamanoSep 20, 2023
  11. Linus ArverSep 22, 2023
  12. Junio C HamanoSep 22, 2023

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.