All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacob Abel <jacobabel@nullpo.dev>
To: git@vger.kernel.org
Cc: Jacob Abel <jacobabel@nullpo.dev>,
	Junio C Hamano <gitster@pobox.com>,
	Phillip Wood <phillip.wood123@gmail.com>
Subject: [PATCH v3 0/3] t2400: Fix test failures when using grep 2.5
Date: Fri, 21 Jul 2023 04:40:28 +0000	[thread overview]
Message-ID: <20230721044012.24360-1-jacobabel@nullpo.dev> (raw)
In-Reply-To: <20230716033743.18200-1-jacobabel@nullpo.dev>

This patchset is in response to build failures on GGG's Cirrus CI 
freebsd_12 build jobs[1] and was prompted by a discussion thread [2].
These failures seem to be caused by the behavior outlined in [3]. 

Note: I jumped the gun on v2 a bit as discussions for v1 were still in
progress so these are all changes suggested off v1.

Changes from v2:
  * Split `--sq` change out into separate patch (from 3/3 to 1/3).
  * Convert tab in advice to space to match coding convention and to
    allow regex to be further simplified [4].
  * Simplified regex [4].
  * Reworded commit message for patch 3/3 to better document reason for
    change [4].

1. https://github.com/gitgitgadget/git/pull/1550/checks?check_run_id=14949695859
2. https://lore.kernel.org/git/CALnO6CDryTsguLshcQxx97ZxyY42Twu2hC2y1bLOsS-9zbqXMA@mail.gmail.com/
3. https://stackoverflow.com/questions/4233159/grep-regex-whitespace-behavior
4. https://lore.kernel.org/git/3f3a3f5b-70fd-ec3f-acbb-d585b5eb6cbc@gmail.com/

Jacob Abel (3):
  t2400: drop no-op `--sq` from rev-parse call
  builtin/worktree.c: convert tab in advice to space
  t2400: rewrite regex to avoid unintentional PCRE

 builtin/worktree.c      |  4 ++--
 t/t2400-worktree-add.sh | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

Range-diff against v2:
-:  ---------- > 1:  96c21c5bee t2400: drop no-op `--sq` from rev-parse call
-:  ---------- > 2:  ebfba2d602 builtin/worktree.c: convert tab in advice to space
1:  ef4ebd7350 ! 3:  dee0c8f350 t2400: Fix test failures when using grep 2.5
    @@ Metadata
     Author: Jacob Abel <jacobabel@nullpo.dev>
     
      ## Commit message ##
    -    t2400: Fix test failures when using grep 2.5
    +    t2400: rewrite regex to avoid unintentional PCRE
     
    -    Replace all cases of `\s` with `[[:blank:]]` or ` ` as older versions
    -    of GNU grep (and from what it seems most versions of BSD grep) do not
    -    handle `\s`.
    +    Replace all cases of `\s` with ` ` as it is not part of POSIX BRE or ERE
    +    and therefore not all versions of grep handle it without PCRE support.
     
         For the same reason all cases of `\S` are replaced with `[^ ]`. It's not
    -    an exact replacement (as it does not match tabs) but it is close enough
    -    for this use case.
    -
    -    Replacing `\S` also needs to occur as `\S` is technically PCRE and not
    -    part of ERE even though most modern versions of grep accept it as ERE.
    -
    -    This commit also drops `--sq` from a rev-parse call as it appears to be
    -    a no-op.
    +    an exact replacement but it is close enough for this use case.
     
         Signed-off-by: Jacob Abel <jacobabel@nullpo.dev>
     
    @@ t/t2400-worktree-add.sh: test_wt_add_orphan_hint () {
      		if [ $use_branch -eq 1 ]
      		then
     -			grep -E "^hint:\s+git worktree add --orphan -b \S+ \S+\s*$" actual
    -+			grep -E "^hint:[[:blank:]]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual
    ++			grep -E "^hint:[ ]+git worktree add --orphan -b [^ ]+ [^ ]+$" actual
      		else
     -			grep -E "^hint:\s+git worktree add --orphan \S+\s*$" actual
    -+			grep -E "^hint:[[:blank:]]+git worktree add --orphan [^ ]+$" actual
    ++			grep -E "^hint:[ ]+git worktree add --orphan [^ ]+$" actual
      		fi
      
      	'
    @@ t/t2400-worktree-add.sh: test_dwim_orphan () {
      
      	local git_ns="repo" &&
     @@ t/t2400-worktree-add.sh: test_dwim_orphan () {
    - 					grep "$invalid_ref_regex" actual &&
    - 					! grep "$orphan_hint" actual
    - 				else
    --					headpath=$(git $dashc_args rev-parse --sq --path-format=absolute --git-path HEAD) &&
    -+					headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) &&
    + 					headpath=$(git $dashc_args rev-parse --path-format=absolute --git-path HEAD) &&
      					headcontents=$(cat "$headpath") &&
      					grep "HEAD points to an invalid (or orphaned) reference" actual &&
     -					grep "HEAD path:\s*.$headpath." actual &&
-- 
2.39.3



  reply	other threads:[~2023-07-21  4:41 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-15  2:55 [PATCH] t2400: Fix test failures when using grep 2.5 Jacob Abel
2023-07-15  8:59 ` Phillip Wood
2023-07-15 23:15   ` Jacob Abel
2023-07-16  1:08     ` Junio C Hamano
2023-07-16  2:55       ` Jacob Abel
2023-07-16 15:34     ` Phillip Wood
2023-07-17  2:38       ` Junio C Hamano
2023-07-18  0:44       ` Jacob Abel
2023-07-18 13:36         ` Phillip Wood
2023-07-21  4:35           ` Jacob Abel
2023-07-15 23:36   ` Jacob Abel
2023-07-16  3:38 ` [PATCH v2] " Jacob Abel
2023-07-21  4:40   ` Jacob Abel [this message]
2023-07-21  4:40     ` [PATCH v3 1/3] t2400: drop no-op `--sq` from rev-parse call Jacob Abel
2023-07-21  4:40     ` [PATCH v3 2/3] builtin/worktree.c: convert tab in advice to space Jacob Abel
2023-07-21  4:40     ` [PATCH v3 3/3] t2400: rewrite regex to avoid unintentional PCRE Jacob Abel
2023-07-21 15:16       ` Junio C Hamano
2023-07-21 15:49         ` Junio C Hamano
2023-07-22  2:36         ` Jacob Abel
2023-07-26 21:42     ` [PATCH v4 0/3] t2400: Fix test failures when using grep 2.5 Jacob Abel
2023-07-26 21:42       ` [PATCH v4 1/3] t2400: drop no-op `--sq` from rev-parse call Jacob Abel
2023-07-26 21:42       ` [PATCH v4 2/3] builtin/worktree.c: convert tab in advice to space Jacob Abel
2023-07-26 21:42       ` [PATCH v4 3/3] t2400: rewrite regex to avoid unintentional PCRE Jacob Abel
2023-07-26 22:09       ` [PATCH v4 0/3] t2400: Fix test failures when using grep 2.5 Junio C Hamano
2023-07-28 13:09         ` Phillip Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230721044012.24360-1-jacobabel@nullpo.dev \
    --to=jacobabel@nullpo.dev \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood123@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.