From: Philippe Blain <levraiphilippeblain@xxxxxxxxx> 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@xxxxxxxxx> --- 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@xxxxxxxxx> 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