mirror of
https://github.com/git/git
synced 2024-08-28 03:59:25 +00:00
Merge branch 'sg/completion-config'
Code clean-up for completion script (in contrib/). * sg/completion-config: completion: simplify query for config variables completion: add a helper function to get config variables
This commit is contained in:
commit
935d937644
|
@ -739,30 +739,25 @@ __git_compute_porcelain_commands ()
|
||||||
__git_porcelain_commands=$(__git_list_porcelain_commands)
|
__git_porcelain_commands=$(__git_list_porcelain_commands)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Lists all set config variables starting with the given section prefix,
|
||||||
|
# with the prefix removed.
|
||||||
|
__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
|
||||||
|
i="${i#$section.}"
|
||||||
|
echo "${i/ */}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
__git_pretty_aliases ()
|
__git_pretty_aliases ()
|
||||||
{
|
{
|
||||||
local i IFS=$'\n'
|
__git_get_config_variables "pretty"
|
||||||
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do
|
|
||||||
case "$i" in
|
|
||||||
pretty.*)
|
|
||||||
i="${i#pretty.}"
|
|
||||||
echo "${i/ */}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_aliases ()
|
__git_aliases ()
|
||||||
{
|
{
|
||||||
local i IFS=$'\n'
|
__git_get_config_variables "alias"
|
||||||
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do
|
|
||||||
case "$i" in
|
|
||||||
alias.*)
|
|
||||||
i="${i#alias.}"
|
|
||||||
echo "${i/ */}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# __git_aliased_command requires 1 argument
|
# __git_aliased_command requires 1 argument
|
||||||
|
@ -2260,12 +2255,7 @@ _git_remote ()
|
||||||
__git_complete_remote_or_refspec
|
__git_complete_remote_or_refspec
|
||||||
;;
|
;;
|
||||||
update)
|
update)
|
||||||
local i c='' IFS=$'\n'
|
__gitcomp "$(__git_get_config_variables "remotes")"
|
||||||
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do
|
|
||||||
i="${i#remotes.}"
|
|
||||||
c="$c ${i/ */}"
|
|
||||||
done
|
|
||||||
__gitcomp "$c"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -370,6 +370,40 @@ test_expect_success '__git_remotes - list remotes from $GIT_DIR/remotes and from
|
||||||
test_cmp expect actual
|
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
|
||||||
|
hash
|
||||||
|
EOF
|
||||||
|
test_config pretty.author "%an %ae" &&
|
||||||
|
test_config pretty.hash %H &&
|
||||||
|
__git_pretty_aliases >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success '__git_aliases' '
|
||||||
|
cat >expect <<-EOF &&
|
||||||
|
ci
|
||||||
|
co
|
||||||
|
EOF
|
||||||
|
test_config alias.ci commit &&
|
||||||
|
test_config alias.co checkout &&
|
||||||
|
__git_aliases >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'basic' '
|
test_expect_success 'basic' '
|
||||||
run_completion "git " &&
|
run_completion "git " &&
|
||||||
# built-in
|
# built-in
|
||||||
|
|
Loading…
Reference in a new issue