git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-stash: fix flag parsing

From
Jon Seymour <jon.seymour@gmail.com>
Date
Sep 25, 2010, 02:58 UTC
Message-ID
<AANLkTim_sNJYRuAB35GTT-2YXY9oJ8rEWsCgO8qv-6nf@mail.gmail.com>
In-Reply-To
<1285366534-10490-1-git-send-email-brian@gernhardtsoftware.com>

Thanks Brian. I've submitted what I hope is the simplest possible rectification of my regression - apologies for not catching this myself!

jon.

On Sat, Sep 25, 2010 at 8:15 AM, Brian Gernhardt <brian@gernhardtsoftware.com> wrote:

Show 98 quoted lines
> Currently git-stash uses `git rev-parse --no-revs -- "$@"` to set its
> FLAGS variable.  This is the same as `FLAGS="-- $@"`.  It should use
> `git rev-parse --no-revs --flags "$@"`, but that eats any "-q" or
> "--quiet" argument.  So move the check for quiet before rev-parse.
>
> Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
> ---
>
>  Not the most elegant solution, but it works.
>
>  I think we want to add the ability for git rev-parse to understand
>  `git rev-parse --no-revs --flags -- "$@"`, but I'm not sure if that
>  would break anything else and don't have the time to do it right now.
>
>  (This time with the right CC list.)
>
>  git-stash.sh     |   15 +++++++++++----
>  t/t3903-stash.sh |    8 ++++----
>  2 files changed, 15 insertions(+), 8 deletions(-)
>
> diff --git a/git-stash.sh b/git-stash.sh
> index 7ce818b..b44da41 100755
> --- a/git-stash.sh
> +++ b/git-stash.sh
> @@ -264,8 +264,18 @@ parse_flags_and_rev()
>        b_tree=
>        i_tree=
>
> +       # Work around rev-parse --flags eating -q
> +       for opt
> +       do
> +               case "$opt" in
> +                       -q|--quiet)
> +                               GIT_QUIET=t
> +                       ;;
> +               esac
> +       done
> +
>        REV=$(git rev-parse --no-flags --symbolic "$@" 2>/dev/null)
> -       FLAGS=$(git rev-parse --no-revs -- "$@" 2>/dev/null)
> +       FLAGS=$(git rev-parse --no-revs --flags "$@" 2>/dev/null)
>
>        set -- $FLAGS
>
> @@ -273,9 +283,6 @@ parse_flags_and_rev()
>        while test $# -ne 0
>        do
>                case "$1" in
> -                       -q|--quiet)
> -                               GIT_QUIET=-t
> -                       ;;
>                        --index)
>                                INDEX_OPTION=--index
>                        ;;
> diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
> index e8a7338..9ed2396 100755
> --- a/t/t3903-stash.sh
> +++ b/t/t3903-stash.sh
> @@ -406,7 +406,7 @@ test_expect_success 'stash branch - stashes on stack, stash-like argument' '
>        test $(git ls-files --modified | wc -l) -eq 1
>  '
>
> -test_expect_failure 'stash show - stashes on stack, stash-like argument' '
> +test_expect_success 'stash show - stashes on stack, stash-like argument' '
>        git stash clear &&
>        test_when_finished "git reset --hard HEAD" &&
>        git reset --hard &&
> @@ -424,7 +424,7 @@ test_expect_failure 'stash show - stashes on stack, stash-like argument' '
>        test_cmp expected actual
>  '
>
> -test_expect_failure 'stash show -p - stashes on stack, stash-like argument' '
> +test_expect_success 'stash show -p - stashes on stack, stash-like argument' '
>        git stash clear &&
>        test_when_finished "git reset --hard HEAD" &&
>        git reset --hard &&
> @@ -447,7 +447,7 @@ test_expect_failure 'stash show -p - stashes on stack, stash-like argument' '
>        test_cmp expected actual
>  '
>
> -test_expect_failure 'stash show - no stashes on stack, stash-like argument' '
> +test_expect_success 'stash show - no stashes on stack, stash-like argument' '
>        git stash clear &&
>        test_when_finished "git reset --hard HEAD" &&
>        git reset --hard &&
> @@ -462,7 +462,7 @@ test_expect_failure 'stash show - no stashes on stack, stash-like argument' '
>        test_cmp expected actual
>  '
>
> -test_expect_failure 'stash show -p - no stashes on stack, stash-like argument' '
> +test_expect_success 'stash show -p - no stashes on stack, stash-like argument' '
>        git stash clear &&
>        test_when_finished "git reset --hard HEAD" &&
>        git reset --hard &&
> --
> 1.7.3.234.g7bba3
>
>
Previous: Brian GernhardtNext: Junio C Hamano
Message 10 of 27 in “git-1.7.3 breakage: "git stash show xxx" doesn't show anything”
  1. Robin H. JohnsonSep 24, 2010
  2. Brandon CaseySep 24, 2010
  3. Brian GernhardtSep 24, 2010
  4. t/t3903-stash: improve testing of git-stash showBrandon Casey, Sep 24, 2010
  5. Brian GernhardtSep 24, 2010
  6. Brandon CaseySep 24, 2010
  7. Brian GernhardtSep 24, 2010
  8. git-stash: fix flag parsingBrian Gernhardt, Sep 24, 2010
  9. git-stash: fix flag parsingBrian Gernhardt, Sep 24, 2010
  10. Jon SeymourSep 25, 2010
  11. Junio C HamanoSep 27, 2010
  12. stash: simplify parsing fixesJon Seymour, Sep 27, 2010
  13. stash show: fix breakage in 1.7.3Jon Seymour, Sep 25, 2010
  14. stash show: fix breakage in 1.7.3Jon Seymour, Sep 25, 2010
  15. Brian GernhardtSep 25, 2010
  16. Jon SeymourSep 25, 2010
  17. Jon SeymourSep 25, 2010
  18. Jon SeymourSep 27, 2010
  19. rev-parse: stop interpreting flags as options to rev-parse once --flags is specifiedJon Seymour, Sep 25, 2010
  20. Jon SeymourSep 25, 2010
  21. Jon SeymourSep 25, 2010
  22. Junio C HamanoSep 26, 2010
  23. Jon SeymourSep 26, 2010
  24. 0/3 rev-parse: allow --flags to output rev-parse-like flagsJon Seymour, Sep 26, 2010
  25. 1/3 rev-parse: update Documentation of --flagsJon Seymour, Sep 26, 2010
  26. 2/3 rev-parse: add tests for git rev-parse --flags.Jon Seymour, Sep 26, 2010
  27. 3/3 rev-parse: stop interpreting flags as options to rev-parse once --flags is specifiedJon Seymour, Sep 26, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.