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

Re: [PATCH v4] branch: support for shortcuts like @{-1}, completed

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Oct 9, 2022, 06:46 UTC
Message-ID
<CAPig+cSdQsK7xVBb=ooOfP-hq1zavSV++iorLoni6o6etoLjzQ@mail.gmail.com>
In-Reply-To
<32e4f8cf-696c-317d-236b-0f64c1398a01@gmail.com>
On Sat, Oct 8, 2022 at 7:28 PM Rubén Justo <rjusto@gmail.com> wrote:
Show 33 quoted lines
> On 8/10/22 19:10, Eric Sunshine wrote:
> > However, `test_cmp` gives you that behavior for free, and it emits a
> > helpful "diff" upon failure, so these days we usually go with
> > `test_cmp`.
>
> I understand the possibility of losing exit codes or segfaults in
> subcommands or pipes, but I'm more thinking in the element to compare to.
> Having something like:
>
>         test_cmp_str () {
>                 test -f "$1" || BUG "first argument must be a file"
>                 if test "$#" -gt 1
>                 then
>                         local F=$1
>                         shift
>                         printf "$@" | eval "$GIT_TEST_CMP" '"$F"' -
>                 else
>                         eval "$GIT_TEST_CMP" '"$1"' -
>                 fi
>         }
>
> to allow writing simpler tests like:
>
> +       test_cmp_str actual "Branch description\n\n"
>
> +       test_cmp_str actual <<-\EOF
> +       Branch description
> +
> +       EOF
>
> My doubts are that maybe this can induce to some bad usages, is
> unusable in some systems, it has already been explored and discarded,
> using files gives the diff with nice names not "-",...

I wouldn't be at all surprised if this sort of thing has been discussed already (it sounds familiar enough), or that such an improvement has already been submitted in the form of a patch (possibly by Ævar, Cc:'d).

My knee-jerk reaction is that the form which takes a string as argument would hardly be used, thus an unnecessary complication. The form which accepts stdin could even be retrofitted onto the existing test_cmp, thus you don't even need to invent a new function name. A different approach would be to introduce a function `test_stdout` which both accepts a command to run, as well as the "expected" text on stdin with which to compare the output of the command; i.e. a combination of the existing `test_stdout_line_count` in t/test-lib-functions.sh and your proposed function above.

That said, I'm not yet seeing all that much added value in such a function; at most, it seems to save only a single line of code, and it's not as if the code it's replacing was doing anything complicated or hard to grok. So, I'm pretty ambivalent about it. But, of course, I'm only one person expressing a knee-jerk reaction. Submitting the idea as an RFC patch might generate more feedback.

Previous: Rubén JustoNext: Junio C Hamano
Message 25 of 38 in “branch: support for at-refs like @{-1} in --edit-description, --set-upstream-to and --unset-upstream”
  1. 0/2 branch: support for at-refs like @{-1} in --edit-description, --set-upstream-to and --unset-upstreamRubén Justo via GitGitGadget, Sep 5, 2022
  2. 2/2 branch: support for at-refs like @{-1}Rubén Justo via GitGitGadget, Sep 5, 2022
  3. 1/2 branch: refactor edit_description command switch caseRubén Justo via GitGitGadget, Sep 5, 2022
  4. 0/2 branch: support for shortcuts like @{-1}, completedRubén Justo, Sep 7, 2022
  5. 1/2 branch: refactor "edit_description" code pathRubén Justo, Sep 7, 2022
  6. Junio C HamanoSep 7, 2022
  7. Rubén JustoSep 7, 2022
  8. Rubén JustoSep 8, 2022
  9. 2/2 branch: support for shortcuts like @{-1} completedRubén Justo, Sep 7, 2022
  10. 0/2 branch: support for shortcuts like @{-1}, completedRubén Justo, Sep 8, 2022
  11. 1/2 branch: refactor "edit_description" code pathRubén Justo, Sep 8, 2022
  12. branch: error codes for "edit_description"Rubén Justo, Sep 8, 2022
  13. Junio C HamanoSep 8, 2022
  14. 2/2 branch: support for shortcuts like @{-1} completedRubén Justo, Sep 8, 2022
  15. branch: support for shortcuts like @{-1}, completedRubén Justo, Oct 8, 2022
  16. Eric SunshineOct 8, 2022
  17. Junio C HamanoOct 8, 2022
  18. Rubén JustoOct 8, 2022
  19. Eric SunshineOct 8, 2022
  20. Rubén JustoOct 8, 2022
  21. Eric SunshineOct 8, 2022
  22. Junio C HamanoOct 8, 2022
  23. Rubén JustoOct 8, 2022
  24. Rubén JustoOct 8, 2022
  25. Eric SunshineOct 9, 2022
  26. Junio C HamanoOct 9, 2022
  27. Rubén JustoOct 9, 2022
  28. Junio C HamanoOct 8, 2022
  29. Rubén JustoOct 8, 2022
  30. branch: support for shortcuts like @{-1}, completedRubén Justo, Oct 8, 2022
  31. Junio C HamanoOct 9, 2022
  32. Junio C HamanoOct 9, 2022
  33. Rubén JustoOct 9, 2022
  34. Junio C HamanoOct 10, 2022
  35. Rubén JustoOct 10, 2022
  36. Junio C HamanoOct 10, 2022
  37. Rubén JustoOct 10, 2022
  38. branch: support for shortcuts like @{-1}, completedRubén Justo, Oct 10, 2022

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.