legacy stash: fix "rudimentary backport of -q"
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 7 Mar 2019 15:29:32 +0000 (07:29 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 8 Mar 2019 01:37:58 +0000 (10:37 +0900)
When this developer backported support for `--quiet` to the scripted
version of `git stash` in 80590055ea (stash: optionally use the scripted
version again, 2018-12-20), it looked like a sane choice to use `eval`
to execute the command line passed in via the parameter list of
`maybe_quiet`.

However, that is not what we should have done, as that command-line was
already in the correct shape.

This can be seen very clearly when passing arguments with special
characters, like

git stash -- ':(glob)**/*.txt'

Since this is exactly what we want to test in the next commit (where we
fix this very incantation with the built-in stash), let's fix the legacy
scripted version of `git stash` first.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-legacy-stash.sh
index 8a8c4a92705698bc7b0ee8563d059e312cc9f57b..f60e9b3e877b24e42431654e1de19911bdfc4f25 100755 (executable)
@@ -86,17 +86,17 @@ maybe_quiet () {
                shift
                if test -n "$GIT_QUIET"
                then
-                       eval "$@" 2>/dev/null
+                       "$@" 2>/dev/null
                else
-                       eval "$@"
+                       "$@"
                fi
                ;;
        *)
                if test -n "$GIT_QUIET"
                then
-                       eval "$@" >/dev/null 2>&1
+                       "$@" >/dev/null 2>&1
                else
-                       eval "$@"
+                       "$@"
                fi
                ;;
        esac