Skip to content

Commit

Permalink
completion: simplify query for config variables
Browse files Browse the repository at this point in the history
To get the name of all config variables in a given section we perform a
'git config --get-regex' query for all config variables containing the
name of that section, and then filter its output through a case statement
to throw away those that though contain but don't start with the given
section.

Modify the regex to match only at the beginning, so the case statement
becomes unnecessary and we can get rid of it.  Add a test to check that a
match in the middle doesn't fool us.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
SZEDER Gábor authored and Junio C Hamano committed May 12, 2015
1 parent e8f9e42 commit 12bdc88
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
10 changes: 3 additions & 7 deletions contrib/completion/git-completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
12 changes: 12 additions & 0 deletions t/t9902-completion.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 12bdc88

Please sign in to comment.