Subject: Re: [PATCH 13/16] t3700: Skip a test with backslashes in pathspec

From: Junio C Hamano <[email-masked]>
Date: Sat, 21 Mar 2009 16:14:20 -0700

Johannes Sixt <[email-masked]> writes:

> Signed-off-by: Johannes Sixt <[email-masked]>
> ---
>  t/t3700-add.sh |    2 +-
>  t/test-lib.sh  |    2 ++
>  2 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/t/t3700-add.sh b/t/t3700-add.sh
> index dc17d9f..050de42 100755
> --- a/t/t3700-add.sh
> +++ b/t/t3700-add.sh
> @@ -222,7 +222,7 @@ test_expect_success POSIXPERM 'git add (add.ignore-errors = false)' '
>  	! ( git ls-files foo1 | grep foo1 )
>  '
>  
> -test_expect_success 'git add '\''fo\[ou\]bar'\'' ignores foobar' '
> +test_expect_success BSLASHPSPEC "git add 'fo\\[ou\\]bar' ignores foobar" '
>  	git reset --hard &&
>  	touch fo\[ou\]bar foobar &&
>  	git add '\''fo\[ou\]bar'\'' &&

I do not think the justification for this change is explained well enough.

The test prepares a file whose name consists of "ef, oh, bra, oh, you,
ket, bee, ei and are" (no backslashes), and passes a filespec that quotes
bra and ket with backslash so glob won't misinterpret as if we are asking
to add "ef oh followed by either oh or you followed by bee ei are".  There
is no path that has a backslash in it involved.

If this does not work on Windows, there is something else going on.  Is it
that the shell eats one level of backslash too much or something?