worktree: add completion for the rev argument in git worktree add <path> <rev>
cover worktree: add completion for the rev argument in git worktree add <path> <rev>
This is inspired by one of those half-finished contributions in the Git for Windows project. Fall cleaning, if you like.
Johannes Schindelin (1):
completion: complete <rev> in git worktree add <path> <rev>
contrib/completion/git-completion.bash | 5 +++++ 1 file changed, 5 insertions(+)
base-commit: d166e6afe5f257217836ef24a73764eba390c58d
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-82%2Fdscho%2Fcomplete-worktree-add-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-82/dscho/complete-worktree-add-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/82
Signature · 1 line
gitgitgadget
PATCH 1/1 completion: complete <rev> in `git worktree add <path> <rev>`
From: Johannes Schindelin <[email protected]>
The second non-option argument to git worktree's add command is an optional revision. Let's complete it.
Inspired by https://github.com/git-for-windows/git/pull/1681.
--- contrib/completion/git-completion.bash | 5 +++++ 1 file changed, 5 insertions(+)
contrib/completion/git-completion.bash +5 -0
@@ -2773,6 +2773,11 @@ _git_worktree () add,--*) __gitcomp_builtin worktree_add ;; + add,*) + if [ $(__git_count_arguments "worktree") -eq 2 ]; then + __git_complete_refs + fi + ;; list,--*) __gitcomp_builtin worktree_list ;;
Signature · 1 line
gitgitgadget
Re: [PATCH 1/1] completion: complete <rev> in `git worktree add <path> <rev>`
Quoted 17 lines · Johannes Schindelin via GitGitGadget
From: Johannes Schindelin <[email protected]>
The second non-option argument to
git worktree'saddcommand is an optional revision. Let's complete it.Inspired by https://github.com/git-for-windows/git/pull/1681.
Signed-off-by Johannes Schindelin <[email protected]>--- contrib/completion/git-completion.bash | 5 +++++ 1 file changed, 5 insertions(+)contrib/completion/git-completion.bash +0
-0
contrib/completion/git-completion.bash _git_worktree () · line 2780
Quoted 8 lines
contrib/completion/git-completion.bash +5
-0@@ -2773,6 +2773,11 @@ _git_worktree () add,--*) __gitcomp_builtin worktree_add ;; + add,*) + if [ $(__git_count_arguments "worktree") -eq 2 ]; then + __git_complete_refs + fi + ;;
Unfortunately, this seems to work only in the following case:
git worktree add path <TAB>
i.e. when the two-be-completed word is still empty. However,
git worktree add path m<TAB>
doesn't work anymore, as it lists paths instead of refs. Furthermore,
git worktree add --detach path <TAB> git worktree add --detach path m<TAB> git worktree add -b newbranch path <TAB>
list paths as well.
However, I presume unintentionally,
git worktree add -b <TAB>
does the right thing and lists refs, but with
git worktree add -b m<TAB>
we are back at paths instead of refs. OTOH,
git worktree add --detach <TAB> git worktree add --lock <TAB>
will erroneously list refs.
I wrote a completion function for 'git worktree' a long while ago, back when it had only two subcommands, which did mostly the right thing, but I found it too convoluted for serious submission. Here it is for inspiration:
Quoted 5 lines
contrib/completion/git-completion.bash +0
-0list,--*) __gitcomp_builtin worktree_list ;;Signature · 1 line
gitgitgadget