diff options
-rw-r--r-- | contrib/completion/git-completion.bash | 10 | ||||
-rwxr-xr-x | t/t9902-completion.sh | 12 |
2 files changed, 15 insertions, 7 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 4594ebcb1a..078b281f69 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -744,13 +744,9 @@ __git_compute_porcelain_commands () __git_get_config_variables () { local section="$1" i IFS=$'\n' - for i in $(git --git-dir="$(__gitdir)" config --get-regexp "$section\..*" 2>/dev/null); do - case "$i" in - $section.*) - i="${i#$section.}" - echo "${i/ */}" - ;; - esac + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "^$section\..*" 2>/dev/null); do + i="${i#$section.}" + echo "${i/ */}" done } diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 07f2478c9b..2ba62fbc17 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -370,6 +370,18 @@ test_expect_success '__git_remotes - list remotes from $GIT_DIR/remotes and from test_cmp expect actual ' +test_expect_success '__git_get_config_variables' ' + cat >expect <<-EOF && + name-1 + name-2 + EOF + test_config interesting.name-1 good && + test_config interesting.name-2 good && + test_config subsection.interesting.name-3 bad && + __git_get_config_variables interesting >actual && + test_cmp expect actual +' + test_expect_success '__git_pretty_aliases' ' cat >expect <<-EOF && author |