From 9111ea1cbeba0861ea1c90e16bea980be4910d8c Mon Sep 17 00:00:00 2001 From: Jacob Abel Date: Wed, 26 Jul 2023 21:42:18 +0000 Subject: [PATCH 1/3] t2400: drop no-op `--sq` from rev-parse call Signed-off-by: Jacob Abel Signed-off-by: Junio C Hamano --- t/t2400-worktree-add.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/t2400-worktree-add.sh b/t/t2400-worktree-add.sh index 0ac468e69e..e106540c6d 100755 --- a/t/t2400-worktree-add.sh +++ b/t/t2400-worktree-add.sh @@ -995,7 +995,7 @@ 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) && headcontents=$(cat "$headpath") && grep "HEAD points to an invalid (or orphaned) reference" actual && grep "HEAD path:\s*.$headpath." actual && From 7e42d4bf15b5d8fee1f43cefdc49cf516e94bc27 Mon Sep 17 00:00:00 2001 From: Jacob Abel Date: Wed, 26 Jul 2023 21:42:24 +0000 Subject: [PATCH 2/3] builtin/worktree.c: convert tab in advice to space Signed-off-by: Jacob Abel Signed-off-by: Junio C Hamano --- builtin/worktree.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builtin/worktree.c b/builtin/worktree.c index 5f62084334..8a94ab3c5a 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -49,14 +49,14 @@ "(branch with no commits) for this repository, you can do so\n" \ "using the --orphan flag:\n" \ "\n" \ - " git worktree add --orphan -b %s %s\n") + " git worktree add --orphan -b %s %s\n") #define WORKTREE_ADD_ORPHAN_NO_DASH_B_HINT_TEXT \ _("If you meant to create a worktree containing a new orphan branch\n" \ "(branch with no commits) for this repository, you can do so\n" \ "using the --orphan flag:\n" \ "\n" \ - " git worktree add --orphan %s\n") + " git worktree add --orphan %s\n") static const char * const git_worktree_usage[] = { BUILTIN_WORKTREE_ADD_USAGE, From d1b72cb36487772fa70217f4234c886db7a5892f Mon Sep 17 00:00:00 2001 From: Jacob Abel Date: Wed, 26 Jul 2023 21:42:34 +0000 Subject: [PATCH 3/3] t2400: rewrite regex to avoid unintentional PCRE 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. For the same reason all cases of `\S` are replaced with `[^ ]`. It is not an exact replacement but it is close enough for this use case. Also, do not write `\+` in BRE and expect it to mean 1 or more; it is a GNU extension that may not work everywhere. Remove `.*` from the end of a pattern that is not right-anchored. Signed-off-by: Jacob Abel Helped-by: Junio C Hamano Signed-off-by: Junio C Hamano --- t/t2400-worktree-add.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/t/t2400-worktree-add.sh b/t/t2400-worktree-add.sh index e106540c6d..051363acbb 100755 --- a/t/t2400-worktree-add.sh +++ b/t/t2400-worktree-add.sh @@ -417,9 +417,9 @@ test_wt_add_orphan_hint () { grep "hint: If you meant to create a worktree containing a new orphan branch" actual && if [ $use_branch -eq 1 ] then - grep -E "^hint:\s+git worktree add --orphan -b \S+ \S+\s*$" 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: +git worktree add --orphan [^ ]+$" actual fi ' @@ -709,8 +709,8 @@ test_dwim_orphan () { local info_text="No possible source branch, inferring '--orphan'" && local fetch_error_text="fatal: No local or remote refs exist despite at least one remote" && local orphan_hint="hint: If you meant to create a worktree containing a new orphan branch" && - local invalid_ref_regex="^fatal: invalid reference:\s\+.*" && - local bad_combo_regex="^fatal: '[a-z-]\+' and '[a-z-]\+' cannot be used together" && + local invalid_ref_regex="^fatal: invalid reference: " && + local bad_combo_regex="^fatal: '[-a-z]*' and '[-a-z]*' cannot be used together" && local git_ns="repo" && local dashc_args="-C $git_ns" && @@ -998,8 +998,8 @@ test_dwim_orphan () { 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 && - grep "HEAD contents:\s*.$headcontents." actual && + grep "HEAD path: .$headpath." actual && + grep "HEAD contents: .$headcontents." actual && grep "$orphan_hint" actual && ! grep "$info_text" actual fi &&