]> git.ipfire.org Git - thirdparty/git.git/commitdiff
completion: fix __git_complete_worktree_paths
authorRubén Justo <rjusto@gmail.com>
Tue, 27 Feb 2024 21:06:49 +0000 (22:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Feb 2024 21:37:24 +0000 (13:37 -0800)
Use __git to invoke "worktree list" in __git_complete_worktree_paths, to
respect any "-C" and "--git-dir" options present on the command line.

Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
t/t9902-completion.sh

index 444b3efa6303396acabe67a997fbf6a57fe0bcdb..86e55dc67fb0208738571b12cf3712840f72a91b 100644 (file)
@@ -3571,7 +3571,7 @@ __git_complete_worktree_paths ()
        # Generate completion reply from worktree list skipping the first
        # entry: it's the path of the main worktree, which can't be moved,
        # removed, locked, etc.
-       __gitcomp_nl "$(git worktree list --porcelain |
+       __gitcomp_nl "$(__git worktree list --porcelain |
                sed -n -e '2,$ s/^worktree //p')"
 }
 
index b16c284181b8707ed21c85efa0e0a0fea128faae..aae2cbeeea3ad9f633fa66ce68d85bef28269bdd 100755 (executable)
@@ -1263,6 +1263,29 @@ test_expect_success '__git_complete_fetch_refspecs - fully qualified & prefix' '
        test_cmp expected out
 '
 
+test_expect_success '__git_complete_worktree_paths' '
+       test_when_finished "git worktree remove other_wt" &&
+       git worktree add --orphan other_wt &&
+       run_completion "git worktree remove " &&
+       grep other_wt out
+'
+
+test_expect_success '__git_complete_worktree_paths - not a git repository' '
+       (
+               cd non-repo &&
+               GIT_CEILING_DIRECTORIES="$ROOT" &&
+               export GIT_CEILING_DIRECTORIES &&
+               test_completion "git worktree remove " ""
+       )
+'
+
+test_expect_success '__git_complete_worktree_paths with -C' '
+       test_when_finished "git -C otherrepo worktree remove otherrepo_wt" &&
+       git -C otherrepo worktree add --orphan otherrepo_wt &&
+       run_completion "git -C otherrepo worktree remove " &&
+       grep otherrepo_wt out
+'
+
 test_expect_success 'git switch - with no options, complete local branches and unique remote branch names for DWIM logic' '
        test_completion "git switch " <<-\EOF
        branch-in-other Z