summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSZEDER Gábor <szeder@ira.uka.de>2016-02-25 23:50:47 +0100
committerJunio C Hamano <gitster@pobox.com>2016-02-28 16:37:15 -0800
commit574cbcd4250f6e39e614ccde6d2f5a1d9b827fb5 (patch)
tree5b8d14a287b33552cb3b4a3bed4324153c2a92dd
parent08f4c63b9a11c73e14bc3ccb4271d9782a5e39e1 (diff)
downloadgit-574cbcd4250f6e39e614ccde6d2f5a1d9b827fb5.tar.gz
completion: consolidate silencing errors from git commands
Outputting error messages during completion is bad: they disrupt the command line, can't be deleted, and the user is forced to Ctrl-C and start over most of the time. We already silence stderr of many git commands in our Bash completion script, but there are still some in there that can spew error messages when something goes wrong. We could add the missing stderr redirections to all the remaining places, but instead let's leverage that git commands are now executed through the previously introduced __git() wrapper function, and redirect standard error to /dev/null only in that function. This way we need only one redirection to take care of errors from almost all git commands. Redirecting standard error of the __git() wrapper function thus became redundant, remove them. The exceptions, i.e. the repo-independent git executions and those in the __gitdir() function that don't go through __git() already have their standard error silenced. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--contrib/completion/git-completion.bash28
1 files changed, 12 insertions, 16 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index c496f4026f..2d0bd01870 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -66,7 +66,7 @@ __gitdir ()
__git ()
{
git ${__git_C_args:+"${__git_C_args[@]}"} \
- ${__git_dir:+--git-dir="$__git_dir"} "$@"
+ ${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null
}
# The following function is based on code from:
@@ -300,7 +300,7 @@ __git_ls_files_helper ()
else
# NOTE: $2 is not quoted in order to support multiple options
__git -C "$1" ls-files --exclude-standard $2
- fi 2>/dev/null
+ fi
}
@@ -412,7 +412,7 @@ __git_refs ()
fi
case "$cur" in
refs|refs/*)
- __git ls-remote "$remote" "$cur*" 2>/dev/null | \
+ __git ls-remote "$remote" "$cur*" | \
while read -r hash i; do
case "$i" in
*^{}) ;;
@@ -424,10 +424,10 @@ __git_refs ()
if [ "$named_remote" = y ]; then
echo "HEAD"
__git for-each-ref --format="%(refname:short)" -- \
- "refs/remotes/$remote/" 2>/dev/null | sed -e "s#^$remote/##"
+ "refs/remotes/$remote/" | sed -e "s#^$remote/##"
else
__git ls-remote "$remote" HEAD \
- 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null |
+ 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' |
while read -r hash i; do
case "$i" in
*^{}) ;;
@@ -453,7 +453,7 @@ __git_refs2 ()
__git_refs_remotes ()
{
local i hash
- __git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \
+ __git ls-remote "$1" 'refs/heads/*' | \
while read -r hash i; do
echo "$i:refs/remotes/$1/${i#refs/heads/}"
done
@@ -529,7 +529,7 @@ __git_complete_revlist_file ()
*) pfx="$ref:$pfx" ;;
esac
- __gitcomp_nl "$(__git ls-tree "$ls" 2>/dev/null \
+ __gitcomp_nl "$(__git ls-tree "$ls" \
| sed '/^100... blob /{
s,^.* ,,
s,$, ,
@@ -807,7 +807,7 @@ __git_compute_porcelain_commands ()
__git_get_config_variables ()
{
local section="$1" i IFS=$'\n'
- for i in $(__git config --name-only --get-regexp "^$section\..*" 2>/dev/null); do
+ for i in $(__git config --name-only --get-regexp "^$section\..*"); do
echo "${i#$section.}"
done
}
@@ -825,7 +825,7 @@ __git_aliases ()
# __git_aliased_command requires 1 argument
__git_aliased_command ()
{
- local word cmdline=$(__git config --get "alias.$1" 2>/dev/null)
+ local word cmdline=$(__git config --get "alias.$1")
for word in $cmdline; do
case "$word" in
\!gitk|gitk)
@@ -1780,9 +1780,7 @@ _git_send_email ()
{
case "$prev" in
--to|--cc|--bcc|--from)
- __gitcomp "
- $(__git send-email --dump-aliases 2>/dev/null)
- "
+ __gitcomp "$(__git send-email --dump-aliases)"
return
;;
esac
@@ -1812,9 +1810,7 @@ _git_send_email ()
return
;;
--to=*|--cc=*|--bcc=*|--from=*)
- __gitcomp "
- $(__git send-email --dump-aliases 2>/dev/null)
- " "" "${cur#--*=}"
+ __gitcomp "$(__git send-email --dump-aliases)" "" "${cur#--*=}"
return
;;
--*)
@@ -1858,7 +1854,7 @@ __git_config_get_set_variables ()
c=$((--c))
done
- __git config $config_file --name-only --list 2>/dev/null
+ __git config $config_file --name-only --list
}
_git_config ()