Merge branch 'rj/complete-worktree-paths-fix'

The logic to complete the command line arguments to "git worktree"
subcommand (in contrib/) has been updated to correctly honor things
like "git -C dir" etc.

* rj/complete-worktree-paths-fix:
  completion: fix __git_complete_worktree_paths
This commit is contained in:
Junio C Hamano
2024-03-14 14:05:25 -07:00
2 changed files with 24 additions and 1 deletions

View File

@ -3629,7 +3629,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')"
}

View File

@ -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