{"thread":{"id":"50142","subject":"[PATCH] test-lib: check Bash version for '-x' without using shell arrays","startedAt":"2019-01-01T23:20:04Z","lastAt":"2019-01-04T20:05:14Z","messageCount":14,"participants":["SZEDER Gábor","Johannes Sixt","Junio C Hamano","Eric Sunshine","Carlo Arenas","Jeff King"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"366023","messageId":"20190101231949.8184-1-szeder.dev@gmail.com","threadId":"50142","inReplyTo":null,"subject":"[PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2019-01-01T23:19:49Z","receivedAt":"2019-01-01T23:20:04Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"One of our test scripts, 't1510-repo-setup.sh' [1], still can't be\nreliably run with '-x' tracing enabled, unless it's executed with a\nBash version supporting BASH_XTRACEFD (since v4.1).  We have a lengthy\ncondition to check the version of the shell running the test script,\nand disable tracing if it's not executed with a suitable Bash version\n[2].\n\nThis condition uses non-portable shell array accesses to easily get\nBash's major and minor version number.  This didn't seem to be\nproblematic, because the simple commands expanding those array\naccesses are only executed when the test script is actually run with\nBash.  When run with Dash, the only shell I have at hand that doesn't\nsupport shell arrays, there are no issues, as it apparently skips\nright over the non-executed simple commands without noticing the\nnon-supported constructs.\n\nAlas, it has been reported that NetBSD's /bin/sh does complain about\nthem:\n\n  ./test-lib.sh: 327: Syntax error: Bad substitution\n\nwhere line 327 contains the first ${BASH_VERSINFO[0]} array access.\n\nTo my understanding both shells are right and conform to POSIX,\nbecause the standard allows both behavior by stating the following\nunder '2.8.1 Consequences of Shell Errors':\n\n  \"An expansion error is one that occurs when the shell expansions\n  define in wordexp are carried out (for example, \"${x!y}\", because\n  '!' is not a valid operator); an implementation may treat these as\n  syntax errors if it is able to detect them during tokenization,\n  rather than during expansion.\"\n\nAvoid this issue with NetBSD's /bin/sh (and potentially with other,\nless common shells) by using a couple of parameter expansions to\nextract the major and minor version numbers from $BASH_VERSION.\n\n[1] 5827506928 (t1510-repo-setup: mark as untraceable with '-x',\n    2018-02-24)\n[2] 5fc98e79fc (t: add means to disable '-x' tracing for individual\n    test scripts, 2018-02-24)\n\nReported-by: Max Kirillov <max@max630.net>\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\n---\n\nThis will certainly conflict with patches 3 and 6 in my stress testing\npatch series at\n\n  https://public-inbox.org/git/20181230191629.3232-1-szeder.dev@gmail.com/T/#u\n\n\n t/test-lib.sh | 9 ++++++---\n 1 file changed, 6 insertions(+), 3 deletions(-)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 0f1faa24b2..f47a191e3b 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -324,9 +324,12 @@ do\n \t\t# isn't executed with a suitable Bash version.\n \t\tif test -z \"$test_untraceable\" || {\n \t\t     test -n \"$BASH_VERSION\" && {\n-\t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n-\t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n-\t\t\t test ${BASH_VERSINFO[1]} -ge 1\n+\t\t       bash_major=${BASH_VERSION%%.*}\n+\t\t       bash_minor=${BASH_VERSION#*.}\n+\t\t       bash_minor=${bash_minor%%.*}\n+\t\t       test $bash_major -gt 4 || {\n+\t\t\t test $bash_major -eq 4 &&\n+\t\t\t test $bash_minor -ge 1\n \t\t       }\n \t\t     }\n \t\t   }\n-- \n2.20.1.151.gec613c4b75\n\n"},{"id":"366025","messageId":"a82251fa-38e1-233e-50d3-3ed4850b4e11@kdbg.org","threadId":"50142","inReplyTo":"20190101231949.8184-1-szeder.dev@gmail.com","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2019-01-02T00:20:47Z","receivedAt":"2019-01-02T00:24:55Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 02.01.19 um 00:19 schrieb SZEDER Gábor:\n> Alas, it has been reported that NetBSD's /bin/sh does complain about\n> them:\n> \n>    ./test-lib.sh: 327: Syntax error: Bad substitution\n> \n> where line 327 contains the first ${BASH_VERSINFO[0]} array access.\n\n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index 0f1faa24b2..f47a191e3b 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -324,9 +324,12 @@ do\n>   \t\t# isn't executed with a suitable Bash version.\n>   \t\tif test -z \"$test_untraceable\" || {\n>   \t\t     test -n \"$BASH_VERSION\" && {\n> -\t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n> -\t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n> -\t\t\t test ${BASH_VERSINFO[1]} -ge 1\n> +\t\t       bash_major=${BASH_VERSION%%.*}\n> +\t\t       bash_minor=${BASH_VERSION#*.}\n> +\t\t       bash_minor=${bash_minor%%.*}\n> +\t\t       test $bash_major -gt 4 || {\n> +\t\t\t test $bash_major -eq 4 &&\n> +\t\t\t test $bash_minor -ge 1\n>   \t\t       }\n>   \t\t     }\n>   \t\t   }\n> \n\nWould it perhaps be simpler to just hide the syntax behind eval? Like\n\n  \t\tif test -z \"$test_untraceable\" || {\n  \t\t     test -n \"$BASH_VERSION\" && eval '\n\t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n\t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n\t\t\t test ${BASH_VERSINFO[1]} -ge 1\n\t\t       }\n  \t\t     '\n\n-- Hannes\n"},{"id":"366044","messageId":"xmqqa7kjknwp.fsf@gitster-ct.c.googlers.com","threadId":"50142","inReplyTo":"a82251fa-38e1-233e-50d3-3ed4850b4e11@kdbg.org","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-02T16:46:46Z","receivedAt":"2019-01-02T16:46:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j6t@kdbg.org> writes:\n\n> Would it perhaps be simpler to just hide the syntax behind eval? Like\n>\n>  \t\tif test -z \"$test_untraceable\" || {\n>  \t\t     test -n \"$BASH_VERSION\" && eval '\n> \t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n> \t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n> \t\t\t test ${BASH_VERSINFO[1]} -ge 1\n> \t\t       }\n>  \t\t     '\n\nIt indeed is somewhat easier to see that your version does exactly\nthe same as the original than the posted patch, but the pattern\nsubstitutions are not all that bad, either.\n"},{"id":"366047","messageId":"CAPig+cRLqy3Zdt4rUbMXC2dd1bhOXYZ=8HEn++zsb=Rau7zADw@mail.gmail.com","threadId":"50142","inReplyTo":"20190101231949.8184-1-szeder.dev@gmail.com","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2019-01-02T18:05:34Z","receivedAt":"2019-01-02T18:05:46Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Tue, Jan 1, 2019 at 6:20 PM SZEDER Gábor <szeder.dev@gmail.com> wrote:\n> [...]\n> To my understanding both shells are right and conform to POSIX,\n> because the standard allows both behavior by stating the following\n\ns/behavior/behaviors/\n\n> under '2.8.1 Consequences of Shell Errors':\n>\n> Reported-by: Max Kirillov <max@max630.net>\n> Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>\n"},{"id":"366049","messageId":"CAPUEspiQyKnUWekn5iYQTP6F8CWW1rr4jSbuFUH+sS=iY9GfSg@mail.gmail.com","threadId":"50142","inReplyTo":"CAPig+cRLqy3Zdt4rUbMXC2dd1bhOXYZ=8HEn++zsb=Rau7zADw@mail.gmail.com","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Carlo Arenas","fromEmail":"carenas@gmail.com","sentAt":"2019-01-02T18:31:40Z","receivedAt":"2019-01-02T18:31:56Z","isPatch":true,"sender":{"key":"carenas@gmail.com","avatar":"https://avatars.githubusercontent.com/u/76036?v=4"},"body":"Tested-By: Carlo Marcelo Arenas Belón <carenas@gmail.com>\n"},{"id":"366063","messageId":"20190103045200.GB20047@sigill.intra.peff.net","threadId":"50142","inReplyTo":"a82251fa-38e1-233e-50d3-3ed4850b4e11@kdbg.org","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2019-01-03T04:52:00Z","receivedAt":"2019-01-03T04:52:04Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jan 02, 2019 at 01:20:47AM +0100, Johannes Sixt wrote:\n\n> > diff --git a/t/test-lib.sh b/t/test-lib.sh\n> > index 0f1faa24b2..f47a191e3b 100644\n> > --- a/t/test-lib.sh\n> > +++ b/t/test-lib.sh\n> > @@ -324,9 +324,12 @@ do\n> >   \t\t# isn't executed with a suitable Bash version.\n> >   \t\tif test -z \"$test_untraceable\" || {\n> >   \t\t     test -n \"$BASH_VERSION\" && {\n> > -\t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n> > -\t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n> > -\t\t\t test ${BASH_VERSINFO[1]} -ge 1\n> > +\t\t       bash_major=${BASH_VERSION%%.*}\n> > +\t\t       bash_minor=${BASH_VERSION#*.}\n> > +\t\t       bash_minor=${bash_minor%%.*}\n> > +\t\t       test $bash_major -gt 4 || {\n> > +\t\t\t test $bash_major -eq 4 &&\n> > +\t\t\t test $bash_minor -ge 1\n> >   \t\t       }\n> >   \t\t     }\n> >   \t\t   }\n> > \n> \n> Would it perhaps be simpler to just hide the syntax behind eval? Like\n> \n>  \t\tif test -z \"$test_untraceable\" || {\n>  \t\t     test -n \"$BASH_VERSION\" && eval '\n> \t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n> \t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n> \t\t\t test ${BASH_VERSINFO[1]} -ge 1\n> \t\t       }\n>  \t\t     '\n\nThat was my first thought, too. :)\n\nThe parsing here is simple enough that I'd be fine either with the\noriginal patch, or an eval-based version (and otherwise, the goal and\ndescription seem quite good to me).\n\n-Peff\n"},{"id":"366083","messageId":"20190103113659.GA4673@szeder.dev","threadId":"50142","inReplyTo":"20190101231949.8184-1-szeder.dev@gmail.com","subject":"Re: [PATCH] test-lib: check Bash version for '-x' without using shell arrays","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2019-01-03T11:36:59Z","receivedAt":"2019-01-03T11:37:10Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Wed, Jan 02, 2019 at 12:19:49AM +0100, SZEDER Gábor wrote:\n> To my understanding both shells are right and conform to POSIX,\n> because the standard allows both behavior by stating the following\n> under '2.8.1 Consequences of Shell Errors':\n> \n>   \"An expansion error is one that occurs when the shell expansions\n>   define in wordexp are carried out (for example, \"${x!y}\", because\n\nThat \"define\" above always stops my (non-native) English parser for a\nmoment or two...  shouldn't it be s/define/defined/ ?\n\nIt's not a copy-paste error, POSIX does indeed write \"define\" there,\nsee:\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_01\n\n(First paragraph below the table and the Notes.)\n\n>   '!' is not a valid operator); an implementation may treat these as\n>   syntax errors if it is able to detect them during tokenization,\n>   rather than during expansion.\"\n> \n"},{"id":"366084","messageId":"20190103114317.11523-1-szeder.dev@gmail.com","threadId":"50142","inReplyTo":"xmqqa7kjknwp.fsf@gitster-ct.c.googlers.com","subject":"[PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2019-01-03T11:43:17Z","receivedAt":"2019-01-03T11:43:25Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"One of our test scripts, 't1510-repo-setup.sh' [1], still can't be\nreliably run with '-x' tracing enabled, unless it's executed with a\nBash version supporting BASH_XTRACEFD (since v4.1).  We have a lengthy\ncondition to check the version of the shell running the test script,\nand disable tracing if it's not executed with a suitable Bash version\n[2].\n\nThis condition uses non-portable shell array accesses to easily get\nBash's major and minor version number.  This didn't seem to be\nproblematic, because the simple commands expanding those array\naccesses are only executed when the test script is actually run with\nBash.  When run with Dash, the only shell I have at hand that doesn't\nsupport shell arrays, there are no issues, as it apparently skips\nright over the non-executed simple commands without noticing the\nnon-supported constructs.\n\nAlas, it has been reported that NetBSD's /bin/sh does complain about\nthem:\n\n  ./test-lib.sh: 327: Syntax error: Bad substitution\n\nwhere line 327 contains the first ${BASH_VERSINFO[0]} array access.\n\nTo my understanding both shells are right and conform to POSIX,\nbecause the standard allows both behaviors by stating the following\nunder '2.8.1 Consequences of Shell Errors' [3]:\n\n  \"An expansion error is one that occurs when the shell expansions\n  define in wordexp are carried out (for example, \"${x!y}\", because\n  '!' is not a valid operator); an implementation may treat these as\n  syntax errors if it is able to detect them during tokenization,\n  rather than during expansion.\"\n\nAvoid this issue with NetBSD's /bin/sh (and potentially with other,\nless common shells) by hiding the shell array syntax behind 'eval'\nthat is only executed with Bash.\n\n[1] 5827506928 (t1510-repo-setup: mark as untraceable with '-x',\n    2018-02-24)\n[2] 5fc98e79fc (t: add means to disable '-x' tracing for individual\n    test scripts, 2018-02-24)\n[3] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_01\n\nReported-by: Max Kirillov <max@max630.net>\nHelped-by: Johannes Sixt <j6t@kdbg.org>\nSigned-off-by: SZEDER Gábor <szeder.dev@gmail.com>\n---\n\nChanges since v1:\n\n - Hide the shell array syntax behind 'eval'.\n   (I'm fine with both versions, take your pick.)\n - Corrected typo in commit message that Eric pointed out.\n - Added a link to the relevant section in POSIX.\n\n t/test-lib.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 0f1faa24b2..c34831a4de 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -323,12 +323,12 @@ do\n \t\t# this test is marked as such, and ignore '-x' if it\n \t\t# isn't executed with a suitable Bash version.\n \t\tif test -z \"$test_untraceable\" || {\n-\t\t     test -n \"$BASH_VERSION\" && {\n+\t\t     test -n \"$BASH_VERSION\" && eval '\n \t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n \t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n \t\t\t test ${BASH_VERSINFO[1]} -ge 1\n \t\t       }\n-\t\t     }\n+\t\t     '\n \t\t   }\n \t\tthen\n \t\t\ttrace=t\n-- \n2.20.1.151.gec613c4b75\n\n"},{"id":"366102","messageId":"xmqqa7khh4cw.fsf@gitster-ct.c.googlers.com","threadId":"50142","inReplyTo":"20190103114317.11523-1-szeder.dev@gmail.com","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-03T20:29:35Z","receivedAt":"2019-01-03T20:29:40Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder.dev@gmail.com> writes:\n\n> One of our test scripts, 't1510-repo-setup.sh' [1], still can't be\n> reliably run with '-x' tracing enabled, unless it's executed with a\n> Bash version supporting BASH_XTRACEFD (since v4.1).  We have a lengthy\n> condition to check the version of the shell running the test script,\n> and disable tracing if it's not executed with a suitable Bash version\n> [2].\n>\n> This condition uses non-portable shell array accesses to easily get\n> Bash's major and minor version number.  This didn't seem to be\n> problematic, because the simple commands expanding those array\n> accesses are only executed when the test script is actually run with\n> Bash.  When run with Dash, the only shell I have at hand that doesn't\n> support shell arrays, there are no issues, as it apparently skips\n> right over the non-executed simple commands without noticing the\n> non-supported constructs.\n>\n> Alas, it has been reported that NetBSD's /bin/sh does complain about\n> them:\n>\n>   ./test-lib.sh: 327: Syntax error: Bad substitution\n>\n> where line 327 contains the first ${BASH_VERSINFO[0]} array access.\n>\n> To my understanding both shells are right and conform to POSIX,\n> because the standard allows both behaviors by stating the following\n> under '2.8.1 Consequences of Shell Errors' [3]:\n>\n>   \"An expansion error is one that occurs when the shell expansions\n>   define in wordexp are carried out (for example, \"${x!y}\", because\n>   '!' is not a valid operator); an implementation may treat these as\n>   syntax errors if it is able to detect them during tokenization,\n>   rather than during expansion.\"\n>\n> Avoid this issue with NetBSD's /bin/sh (and potentially with other,\n> less common shells) by hiding the shell array syntax behind 'eval'\n> that is only executed with Bash.\n>\n> [1] 5827506928 (t1510-repo-setup: mark as untraceable with '-x',\n>     2018-02-24)\n> [2] 5fc98e79fc (t: add means to disable '-x' tracing for individual\n>     test scripts, 2018-02-24)\n> [3] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_01\n>\n> Reported-by: Max Kirillov <max@max630.net>\n> Helped-by: Johannes Sixt <j6t@kdbg.org>\n> Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>\n> ---\n>\n> Changes since v1:\n>\n>  - Hide the shell array syntax behind 'eval'.\n>    (I'm fine with both versions, take your pick.)\n>  - Corrected typo in commit message that Eric pointed out.\n>  - Added a link to the relevant section in POSIX.\n\nLet's treat this as an independent and more urgent fix-up.  I think\nit is sufficient to apply it to 2.20.x track, even though we could\ngo back to 2.17.x and above.\n\nAnd then let's tentatively kick the \"stress test\" series out of\n'pu', and have that series rebuilt on top of 'master' and this\npatch.\n\nThanks.\n\n>\n>  t/test-lib.sh | 4 ++--\n>  1 file changed, 2 insertions(+), 2 deletions(-)\n>\n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index 0f1faa24b2..c34831a4de 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -323,12 +323,12 @@ do\n>  \t\t# this test is marked as such, and ignore '-x' if it\n>  \t\t# isn't executed with a suitable Bash version.\n>  \t\tif test -z \"$test_untraceable\" || {\n> -\t\t     test -n \"$BASH_VERSION\" && {\n> +\t\t     test -n \"$BASH_VERSION\" && eval '\n>  \t\t       test ${BASH_VERSINFO[0]} -gt 4 || {\n>  \t\t\t test ${BASH_VERSINFO[0]} -eq 4 &&\n>  \t\t\t test ${BASH_VERSINFO[1]} -ge 1\n>  \t\t       }\n> -\t\t     }\n> +\t\t     '\n>  \t\t   }\n>  \t\tthen\n>  \t\t\ttrace=t\n"},{"id":"366135","messageId":"20190104093015.GC4673@szeder.dev","threadId":"50142","inReplyTo":"xmqqa7khh4cw.fsf@gitster-ct.c.googlers.com","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2019-01-04T09:30:15Z","receivedAt":"2019-01-04T09:30:20Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Thu, Jan 03, 2019 at 12:29:35PM -0800, Junio C Hamano wrote:\n> Let's treat this as an independent and more urgent fix-up.  I think\n> it is sufficient to apply it to 2.20.x track, even though we could\n> go back to 2.17.x and above.\n> \n> And then let's tentatively kick the \"stress test\" series out of\n> 'pu', and have that series rebuilt on top of 'master' and this\n> patch.\n\nI rebased my '--stress' patch series on top of\n'sg/test-bash-version-fix', and the result is the same as what's at\nthe tip of 'sg/stress-test' at 1d1416a34b.\n\n"},{"id":"366142","messageId":"xmqq5zv4fyuy.fsf@gitster-ct.c.googlers.com","threadId":"50142","inReplyTo":"20190104093015.GC4673@szeder.dev","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-04T11:25:57Z","receivedAt":"2019-01-04T11:26:02Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder.dev@gmail.com> writes:\n\n> On Thu, Jan 03, 2019 at 12:29:35PM -0800, Junio C Hamano wrote:\n>> Let's treat this as an independent and more urgent fix-up.  I think\n>> it is sufficient to apply it to 2.20.x track, even though we could\n>> go back to 2.17.x and above.\n>> \n>> And then let's tentatively kick the \"stress test\" series out of\n>> 'pu', and have that series rebuilt on top of 'master' and this\n>> patch.\n>\n> I rebased my '--stress' patch series on top of\n> 'sg/test-bash-version-fix', and the result is the same as what's at\n> the tip of 'sg/stress-test' at 1d1416a34b.\n\nYeah, sorry for not reporting what I did after pushing the\nintegration result out.  I ended up rebasing the stress series on\ntop of the updated fix with eval myself.\n\nThanks.\n"},{"id":"366146","messageId":"20190104123819.GD4673@szeder.dev","threadId":"50142","inReplyTo":"xmqq5zv4fyuy.fsf@gitster-ct.c.googlers.com","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2019-01-04T12:38:19Z","receivedAt":"2019-01-04T12:38:26Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Fri, Jan 04, 2019 at 03:25:57AM -0800, Junio C Hamano wrote:\n> SZEDER Gábor <szeder.dev@gmail.com> writes:\n> \n> > On Thu, Jan 03, 2019 at 12:29:35PM -0800, Junio C Hamano wrote:\n> >> Let's treat this as an independent and more urgent fix-up.  I think\n> >> it is sufficient to apply it to 2.20.x track, even though we could\n> >> go back to 2.17.x and above.\n> >> \n> >> And then let's tentatively kick the \"stress test\" series out of\n> >> 'pu', and have that series rebuilt on top of 'master' and this\n> >> patch.\n> >\n> > I rebased my '--stress' patch series on top of\n> > 'sg/test-bash-version-fix', and the result is the same as what's at\n> > the tip of 'sg/stress-test' at 1d1416a34b.\n> \n> Yeah, sorry for not reporting what I did after pushing the\n> integration result out.  I ended up rebasing the stress series on\n> top of the updated fix with eval myself.\n\nNo problem, it still saved me from writing a cover letter :)\n\nNote that I didn't actually test either of these patches on NetBSD,\nthough both \"Should Work\".  Carlo sent a Tested-by for v1; I hope\nhe'll be able to get around and test v2 as well.\n\n"},{"id":"366155","messageId":"CAPUEspga6Kjv0pSYiD-BmZUCTf0rd=y0vneY_XvAkj_cCmXC8g@mail.gmail.com","threadId":"50142","inReplyTo":"20190104123819.GD4673@szeder.dev","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Carlo Arenas","fromEmail":"carenas@gmail.com","sentAt":"2019-01-04T18:42:09Z","receivedAt":"2019-01-04T18:42:23Z","isPatch":true,"sender":{"key":"carenas@gmail.com","avatar":"https://avatars.githubusercontent.com/u/76036?v=4"},"body":"v2 works fine, as expected\n\nCarlo\n"},{"id":"366157","messageId":"xmqqy380b35m.fsf@gitster-ct.c.googlers.com","threadId":"50142","inReplyTo":"CAPUEspga6Kjv0pSYiD-BmZUCTf0rd=y0vneY_XvAkj_cCmXC8g@mail.gmail.com","subject":"Re: [PATCH v2] test-lib: check Bash version for '-x' without using shell arrays","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2019-01-04T20:04:21Z","receivedAt":"2019-01-04T20:05:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Carlo Arenas <carenas@gmail.com> writes:\n\n> v2 works fine, as expected\n\nThanks.\n"}]}