[PATCH 02/11] completion: add test showing subpar git switch completion
- From
Jacob Keller <jacob.e.keller@intel.com>
- Date
- Apr 25, 2020, 02:20 UTC
- Message-ID
- <20200425022045.1089291-3-jacob.e.keller@intel.com>
- In-Reply-To
- <20200425022045.1089291-1-jacob.e.keller@intel.com>
From: Jacob Keller <jacob.keller@gmail.com>
With no options, git switch only allows switching branches or DWIM to create a local branch tracking a remote branch of the same name. However, tab completion will expand "git switch <TAB>" to any local reference, including pseudorefs like HEAD, or tags.
Add a test case which highlights this failure, which will be fixed in a future refactoring of git switch completion support.
Signed-off-by: Jacob Keller <jacob.keller@gmail.com> --- t/t9902-completion.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 03e8188f023d..af4661cbcc73 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -1240,6 +1240,19 @@ test_expect_success '__git_complete_fetch_refspecs - fully qualified & prefix' ' test_cmp expected out ' +# TODO: git switch by default should only include local branches and anything which +# would be understood by the DWIM logic. Currently it will complete most +# references including pseudorefs like HEAD and FETCH_HEAD, as well as tags. +# These should not be completed unless certain options have been enabled. +test_expect_failure '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 + master Z + master-in-other Z + matching-branch Z + EOF +' + test_expect_success 'git switch - with --no-guess, complete only local branches' ' test_completion "git switch --no-guess " <<-\EOF master Z
-- 2.25.2