diff options
| -rw-r--r-- | contrib/completion/git-completion.bash | 7 | ||||
| -rwxr-xr-x | t/t9902-completion.sh | 19 | 
2 files changed, 21 insertions, 5 deletions
| diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 1e8965b828..b8929084d0 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -411,12 +411,9 @@ __git_refs_remotes ()  __git_remotes ()  { -	local i IFS=$'\n' d="$(__gitdir)" +	local d="$(__gitdir)"  	test -d "$d/remotes" && ls -1 "$d/remotes" -	for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do -		i="${i#remote.}" -		echo "${i/.url*/}" -	done +	git --git-dir="$d" remote  }  __git_list_merge_strategies () diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index f10a75290e..7a883d1a67 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -351,6 +351,25 @@ test_expect_success '__gitcomp_nl - doesnt fail because of invalid variable name  	__gitcomp_nl "$invalid_variable_name"  ' +test_expect_success '__git_remotes - list remotes from $GIT_DIR/remotes and from config file' ' +	cat >expect <<-EOF && +	remote_from_file_1 +	remote_from_file_2 +	remote_in_config_1 +	remote_in_config_2 +	EOF +	test_when_finished "rm -rf .git/remotes" && +	mkdir -p .git/remotes && +	>.git/remotes/remote_from_file_1 && +	>.git/remotes/remote_from_file_2 && +	test_when_finished "git remote remove remote_in_config_1" && +	git remote add remote_in_config_1 git://remote_1 && +	test_when_finished "git remote remove remote_in_config_2" && +	git remote add remote_in_config_2 git://remote_2 && +	__git_remotes >actual && +	test_cmp expect actual +' +  test_expect_success 'basic' '  	run_completion "git " &&  	# built-in | 
