Thread (1 message) 1 message, 1 author, 2021-02-17

Re: [RFC PATCH 2/7] add: include magic part of pathspec on --refresh error

From: Junio C Hamano <hidden>
Date: 2021-02-17 22:21:27

Matheus Tavares [off-list ref] writes:
When `git add --refresh <pathspec>` doesn't find any matches for the
given pathspec, it prints an error message using the `match` field of
the `struct pathspec_item`. However, this field doesn't contain the
magic part of the pathspec. Instead, let's use the `original` field.
I assume that this is what already happens when there is no
"--refresh" on the command line?  I.e.

    $ cd t
    $ git add ':(icase)foo'
    fatal: pathspec ':(icase)foo' did not match any files
    $ git add --refresh ':(icase)foo'
    fatal: pathspec 't/foo' did not match any files

and you are unifying the discrepancy between the two to match the
former.

Makes sense.
quoted hunk
Signed-off-by: Matheus Tavares <redacted>
---
 builtin/add.c  | 2 +-
 t/t3700-add.sh | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/builtin/add.c b/builtin/add.c
index f757de45ea..8c96c23778 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -180,7 +180,7 @@ static void refresh(int verbose, const struct pathspec *pathspec)
 	for (i = 0; i < pathspec->nr; i++) {
 		if (!seen[i])
 			die(_("pathspec '%s' did not match any files"),
-			    pathspec->items[i].match);
+			    pathspec->items[i].original);
 	}
 	free(seen);
 }
diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index fc81f2ef00..fe72204066 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -196,6 +196,12 @@ test_expect_success 'git add --refresh with pathspec' '
 	grep baz actual
 '
 
+test_expect_success 'git add --refresh correctly reports no match error' "
+	echo \"fatal: pathspec ':(icase)nonexistent' did not match any files\" >expect &&
+	test_must_fail git add --refresh ':(icase)nonexistent' 2>actual &&
+	test_i18ncmp expect actual
+"
+
 test_expect_success POSIXPERM,SANITY 'git add should fail atomically upon an unreadable file' '
 	git reset --hard &&
 	date >foo1 &&
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help