git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
@ 2017-04-28  1:53 Ramsay Jones
  2017-04-28  3:09 ` Junio C Hamano
  0 siblings, 1 reply; 9+ messages in thread
From: Ramsay Jones @ 2017-04-28  1:53 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, Johannes Sixt, GIT Mailing-list


Commit cf9e55f494 ("submodule: prevent backslash expantion in submodule
names", 07-04-2017) added a test which creates a git repository with
some backslash characters in the name. This test cannot work on windows,
since the backslash is used as the directory separator. In order to
suppress this test on cygwin, MinGW and Git for Windows, we add the
BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---

Hi Junio,

I built v2.13.0-rc1 and ran the test-suite on cygwin this evening and
had an additional failure, over and above the failures reported for
v2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin
(and MinGW and GfW, so it would be good to hear success reports from
both Johannes).

Thanks!

ATB,
Ramsay Jones

 t/t7400-submodule-basic.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index c2706fe47..0d83153f3 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '
 	test_cmp empty untracked
 '
 
-test_expect_success 'submodule add with \\ in path' '
+test_expect_success BSLASHPSPEC 'submodule add with \\ in path' '
 	test_when_finished "rm -rf parent sub\\with\\backslash" &&
 
 	# Initialize a repo with a backslash in its name
-- 
2.12.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-28  1:53 [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path' Ramsay Jones
@ 2017-04-28  3:09 ` Junio C Hamano
  2017-04-28 19:54   ` Johannes Sixt
  0 siblings, 1 reply; 9+ messages in thread
From: Junio C Hamano @ 2017-04-28  3:09 UTC (permalink / raw)
  To: Ramsay Jones; +Cc: Johannes Schindelin, Johannes Sixt, GIT Mailing-list

Ramsay Jones <ramsay@ramsayjones.plus.com> writes:

> Commit cf9e55f494 ("submodule: prevent backslash expantion in submodule
> names", 07-04-2017) added a test which creates a git repository with
> some backslash characters in the name. This test cannot work on windows,
> since the backslash is used as the directory separator. In order to
> suppress this test on cygwin, MinGW and Git for Windows, we add the
> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).
>
> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
> ---
>
> Hi Junio,
>
> I built v2.13.0-rc1 and ran the test-suite on cygwin this evening and
> had an additional failure, over and above the failures reported for
> v2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin
> (and MinGW and GfW, so it would be good to hear success reports from
> both Johannes).
>
> Thanks!

Thanks.  Will queue and hopefully we can merge it to 'master' before
the next -rc.

>
> ATB,
> Ramsay Jones
>
>  t/t7400-submodule-basic.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
> index c2706fe47..0d83153f3 100755
> --- a/t/t7400-submodule-basic.sh
> +++ b/t/t7400-submodule-basic.sh
> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '
>  	test_cmp empty untracked
>  '
>  
> -test_expect_success 'submodule add with \\ in path' '
> +test_expect_success BSLASHPSPEC 'submodule add with \\ in path' '
>  	test_when_finished "rm -rf parent sub\\with\\backslash" &&
>  
>  	# Initialize a repo with a backslash in its name

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-28  3:09 ` Junio C Hamano
@ 2017-04-28 19:54   ` Johannes Sixt
  2017-04-29  0:15     ` Ramsay Jones
  0 siblings, 1 reply; 9+ messages in thread
From: Johannes Sixt @ 2017-04-28 19:54 UTC (permalink / raw)
  To: Junio C Hamano, Ramsay Jones; +Cc: Johannes Schindelin, GIT Mailing-list

Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>
>> Commit cf9e55f494 ("submodule: prevent backslash expantion in submodule
>> names", 07-04-2017) added a test which creates a git repository with
>> some backslash characters in the name. This test cannot work on windows,
>> since the backslash is used as the directory separator. In order to
>> suppress this test on cygwin, MinGW and Git for Windows, we add the
>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).

First, let me say that meaning of BSLASHPSPEC was "keeps backslaches in 
pathspec arguments" originally, but it apparently changed meaning since 
then.

The prerequisite was introduced in 6fd1106aa4 because the MinGW port 
rewrites backslashes in command arguments that undergo the '\'->"/" 
transformation introduced for prefix_filename() in 25fe217b86. It 
destroys the backslashes that could otherwise be used to escape globbing 
characters. t3700 does just that.

Since Cygwin does not do this rewriting, the original CYGWIN section in 
test-lib.sh had the prerequisite, just like the default (POSIX). But it 
was removed by 5b5d53cbe5 (t4135-*.sh: Skip the "backslash" tests on 
cygwin), and that is where BSLASHPSPEC changed meaning. That commit even 
carries my Acked-by (!), even though I can't recall giving it and I 
don't find it in the conversation about the patch:

https://public-inbox.org/git/4D07B977.9010502@ramsay1.demon.co.uk/

>> I built v2.13.0-rc1 and ran the test-suite on cygwin this evening and
>> had an additional failure, over and above the failures reported for
>> v2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin
>> (and MinGW and GfW, so it would be good to hear success reports from
>> both Johannes).

t7400.20 does not fail for the MinGW port because the test case only 
operates on the file system, but never checks whether an entry 
'sub\with\backslash' is present in the index.

>> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '
>>  	test_cmp empty untracked
>>  '
>>
>> -test_expect_success 'submodule add with \\ in path' '
>> +test_expect_success BSLASHPSPEC 'submodule add with \\ in path' '
>>  	test_when_finished "rm -rf parent sub\\with\\backslash" &&
>>
>>  	# Initialize a repo with a backslash in its name
>

I assume the test fails right at 'git init' under Cygwin?

BSLASHPSPEC (with its *new* meaning) would be the right prerequisite if 
the check for the index entry were added. Until then, !CYGWIN is more 
appropriate.

-- Hannes


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-28 19:54   ` Johannes Sixt
@ 2017-04-29  0:15     ` Ramsay Jones
  2017-04-29  6:46       ` Johannes Sixt
  0 siblings, 1 reply; 9+ messages in thread
From: Ramsay Jones @ 2017-04-29  0:15 UTC (permalink / raw)
  To: Johannes Sixt, Junio C Hamano; +Cc: Johannes Schindelin, GIT Mailing-list



On 28/04/17 20:54, Johannes Sixt wrote:
> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>>
>>> Commit cf9e55f494 ("submodule: prevent backslash expantion in submodule
>>> names", 07-04-2017) added a test which creates a git repository with
>>> some backslash characters in the name. This test cannot work on windows,
>>> since the backslash is used as the directory separator. In order to
>>> suppress this test on cygwin, MinGW and Git for Windows, we add the
>>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).
> 
> First, let me say that meaning of BSLASHPSPEC was
> "keeps backslaches in pathspec arguments" originally,
> but it apparently changed meaning since then.

Indeed. I started to give some of the history in the commit message, but
it was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and
c51c0da222' ... ;-)
 
> t7400.20 does not fail for the MinGW port because the
> test case only operates on the file system, but never
> checks whether an entry 'sub\with\backslash' is present
> in the index.

Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails
exactly the same as cygwin. Hmm, wait, let me just rebuild on
MinGW64 ... indeed it passes (well it passes t7400.20, but it
fails on t7400.11, 61, 63, 87 and 89)!

> 
>>> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '
>>>      test_cmp empty untracked
>>>  '
>>>
>>> -test_expect_success 'submodule add with \\ in path' '
>>> +test_expect_success BSLASHPSPEC 'submodule add with \\ in path' '
>>>      test_when_finished "rm -rf parent sub\\with\\backslash" &&
>>>
>>>      # Initialize a repo with a backslash in its name
>>
> 
> I assume the test fails right at 'git init' under Cygwin?

Indeed. Also on MSYS2 (exactly as on cygwin):

ramsay@satellite  MSYS $ ./t7400-submodule-basic.sh -i -v

...

ok 19 - submodule add with ./, /.. and // in path

expecting success:
        test_when_finished "rm -rf parent sub\\with\\backslash" &&

        # Initialize a repo with a backslash in its name
        git init sub\\with\\backslash &&
        touch sub\\with\\backslash/empty.file &&
        git -C sub\\with\\backslash add empty.file &&
        git -C sub\\with\\backslash commit -m "Added empty.file" &&

        # Add that repository as a submodule
        git init parent &&
        git -C parent submodule add ../sub\\with\\backslash

fatal: cannot mkdir sub\with\backslash: No such file or directory
not ok 20 - submodule add with \\ in path
#
#               test_when_finished "rm -rf parent sub\\with\\backslash" &&
#
#               # Initialize a repo with a backslash in its name
#               git init sub\\with\\backslash &&
#               touch sub\\with\\backslash/empty.file &&
#               git -C sub\\with\\backslash add empty.file &&
#               git -C sub\\with\\backslash commit -m "Added empty.file" &&
#
#               # Add that repository as a submodule
#               git init parent &&
#               git -C parent submodule add ../sub\\with\\backslash
#
ramsay@satellite  MSYS $

ramsay@satellite  MSYS $ cd trash\ directory.t7400-submodule-basic/

ramsay@satellite  MSYS $ ls
a       addtest/         empty   expect-head   head   head-sha1  untracked
actual  addtest-ignore/  expect  expect-heads  heads  t          z

ramsay@satellite  MSYS $ git init sub\\with\\backslash
fatal: cannot mkdir sub\with\backslash: No such file or directory

ramsay@satellite  MSYS $ mkdir -p sub\\with

ramsay@satellite  MSYS $ git init sub\\with\\backslash
Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/sub/with/backslash/.git/

ramsay@satellite  MSYS $ touch sub\\with\\backslash/empty.file
ramsay@satellite  MSYS $ git -C sub\\with\\backslash add empty.file
ramsay@satellite  MSYS $ git -C sub\\with\\backslash commit -m "Added empty.file"
[master (root-commit) 6fde90b] Added empty.file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 empty.file

ramsay@satellite  MSYS $ git init parent
Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/.git/

ramsay@satellite  MSYS $ git -C parent submodule add ../sub\\with\\backslash
Cloning into '/home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub/with/backslash'...
done.
fatal: Not a git repository: /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub\with\backslash/../.git/modules/sub/with/backslash

ramsay@satellite  MSYS $ echo $?
128
ramsay@satellite  MSYS $

Do you not see this on msys?

> 
> BSLASHPSPEC (with its *new* meaning) would be the
> right prerequisite if the check for the index entry
> were added. Until then, !CYGWIN is more appropriate.

OK, I'll re-roll the patch (tomorrow, it's late again).

Thanks.

ATB,
Ramsay Jones



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-29  0:15     ` Ramsay Jones
@ 2017-04-29  6:46       ` Johannes Sixt
  2017-04-29 10:44         ` Johannes Schindelin
  2017-04-30 17:33         ` Ramsay Jones
  0 siblings, 2 replies; 9+ messages in thread
From: Johannes Sixt @ 2017-04-29  6:46 UTC (permalink / raw)
  To: Ramsay Jones; +Cc: Junio C Hamano, Johannes Schindelin, GIT Mailing-list

Am 29.04.2017 um 02:15 schrieb Ramsay Jones:
>
>
> On 28/04/17 20:54, Johannes Sixt wrote:
>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>>>
>>>> Commit cf9e55f494 ("submodule: prevent backslash expantion in submodule
>>>> names", 07-04-2017) added a test which creates a git repository with
>>>> some backslash characters in the name. This test cannot work on windows,
>>>> since the backslash is used as the directory separator. In order to
>>>> suppress this test on cygwin, MinGW and Git for Windows, we add the
>>>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).
>>
>> First, let me say that meaning of BSLASHPSPEC was
>> "keeps backslaches in pathspec arguments" originally,
>> but it apparently changed meaning since then.
>
> Indeed. I started to give some of the history in the commit message, but
> it was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and
> c51c0da222' ... ;-)
>
>> t7400.20 does not fail for the MinGW port because the
>> test case only operates on the file system, but never
>> checks whether an entry 'sub\with\backslash' is present
>> in the index.
>
> Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails
> exactly the same as cygwin. Hmm, wait, let me just rebuild on
> MinGW64 ... indeed it passes (well it passes t7400.20, but it
> fails on t7400.11, 61, 63, 87 and 89)!

I don't observe these failures. Are you using a vanila MSYS2 
environment? The exact failure modes would be interesting, if you want 
to hear "Ah, Git for Windows does this and that to make this work". ;)

>> I assume the test fails right at 'git init' under Cygwin?
>
> Indeed. Also on MSYS2 (exactly as on cygwin):
>
> ramsay@satellite  MSYS $ ./t7400-submodule-basic.sh -i -v
>
> ...
>
> ok 19 - submodule add with ./, /.. and // in path
>
> expecting success:
>         test_when_finished "rm -rf parent sub\\with\\backslash" &&
>
>         # Initialize a repo with a backslash in its name
>         git init sub\\with\\backslash &&
>         touch sub\\with\\backslash/empty.file &&
>         git -C sub\\with\\backslash add empty.file &&
>         git -C sub\\with\\backslash commit -m "Added empty.file" &&
>
>         # Add that repository as a submodule
>         git init parent &&
>         git -C parent submodule add ../sub\\with\\backslash
>
> fatal: cannot mkdir sub\with\backslash: No such file or directory
> not ok 20 - submodule add with \\ in path
> #
> #               test_when_finished "rm -rf parent sub\\with\\backslash" &&
> #
> #               # Initialize a repo with a backslash in its name
> #               git init sub\\with\\backslash &&
> #               touch sub\\with\\backslash/empty.file &&
> #               git -C sub\\with\\backslash add empty.file &&
> #               git -C sub\\with\\backslash commit -m "Added empty.file" &&
> #
> #               # Add that repository as a submodule
> #               git init parent &&
> #               git -C parent submodule add ../sub\\with\\backslash
> #
> ramsay@satellite  MSYS $
>
> ramsay@satellite  MSYS $ cd trash\ directory.t7400-submodule-basic/
>
> ramsay@satellite  MSYS $ ls
> a       addtest/         empty   expect-head   head   head-sha1  untracked
> actual  addtest-ignore/  expect  expect-heads  heads  t          z
>
> ramsay@satellite  MSYS $ git init sub\\with\\backslash
> fatal: cannot mkdir sub\with\backslash: No such file or directory
>
> ramsay@satellite  MSYS $ mkdir -p sub\\with

OK: git init calls mkdir("sub\\with\\backslash"), which does not create 
the missing directories automatically. Therefore, this mkdir helps. In 
the next call, the OS functions behind mkdir simply take the backslashes 
as directory separators:

>
> ramsay@satellite  MSYS $ git init sub\\with\\backslash
> Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/sub/with/backslash/.git/
>
> ramsay@satellite  MSYS $ touch sub\\with\\backslash/empty.file
> ramsay@satellite  MSYS $ git -C sub\\with\\backslash add empty.file
> ramsay@satellite  MSYS $ git -C sub\\with\\backslash commit -m "Added empty.file"
> [master (root-commit) 6fde90b] Added empty.file
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  create mode 100644 empty.file
>
> ramsay@satellite  MSYS $ git init parent
> Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/.git/
>
> ramsay@satellite  MSYS $ git -C parent submodule add ../sub\\with\\backslash
> Cloning into '/home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub/with/backslash'...
> done.
> fatal: Not a git repository: /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub\with\backslash/../.git/modules/sub/with/backslash

MSYS git does not know that the backslash is a directory separator. 
Hence, it constructs a path with only a single .. component thinking 
that this walks above sub\with\backslash to end up in parent/; but the 
underlying OS operation interprets the backslashes as directory 
separator and ends up in parent/sub\with\. Of coures, no .git directory 
is at this point, hence the failure.

MinGW git, however, knows about the backslash's meaning and constructs a 
path containing ../../.. to walk sufficiently high up in the hierarchy 
and finds the .git directory.

-- Hannes


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-29  6:46       ` Johannes Sixt
@ 2017-04-29 10:44         ` Johannes Schindelin
  2017-04-30 18:00           ` Ramsay Jones
  2017-04-30 17:33         ` Ramsay Jones
  1 sibling, 1 reply; 9+ messages in thread
From: Johannes Schindelin @ 2017-04-29 10:44 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Ramsay Jones, Junio C Hamano, GIT Mailing-list

Hi,

On Sat, 29 Apr 2017, Johannes Sixt wrote:

> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:
> >
> > On 28/04/17 20:54, Johannes Sixt wrote:
> > > Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
> > > > Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> > > >
> > > > > Commit cf9e55f494 ("submodule: prevent backslash expantion in
> > > > > submodule
> > > > > names", 07-04-2017) added a test which creates a git repository with
> > > > > some backslash characters in the name. This test cannot work on
> > > > > windows,
> > > > > since the backslash is used as the directory separator. In order to
> > > > > suppress this test on cygwin, MinGW and Git for Windows, we add the
> > > > > BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and
> > > > > c51c0da222).
> > >
> > > First, let me say that meaning of BSLASHPSPEC was
> > > "keeps backslaches in pathspec arguments" originally,
> > > but it apparently changed meaning since then.
> >
> > Indeed. I started to give some of the history in the commit message, but
> > it was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and
> > c51c0da222' ... ;-)
> >
> > > t7400.20 does not fail for the MinGW port because the
> > > test case only operates on the file system, but never
> > > checks whether an entry 'sub\with\backslash' is present
> > > in the index.
> >
> > Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails
> > exactly the same as cygwin. Hmm, wait, let me just rebuild on
> > MinGW64 ... indeed it passes (well it passes t7400.20, but it
> > fails on t7400.11, 61, 63, 87 and 89)!
> 
> I don't observe these failures. Are you using a vanila MSYS2 environment?

Please note that the "vanilla MSYS2 environment" is *not* expected to pass
the test suite when compiling in MINGW mode. In fact, it is expected to
fail.

In 2015, I made a couple of changes to the MSYS2 runtime in preparation
for the big bump to Git for Windows 2.x (which switched from the old MSys
environment to the new MSYS2 environment), and released Git for Windows
2.5.0 with a heavily patched msys-2.0.dll. My hope was that those changes
would be welcome in the MSYS2 project, but well, they kinda weren't. So I
was forced to abandon my original plan to contribute all of those fixes to
"upstream MSYS2".

To see the changes I (and others) made:

	https://github.com/git-for-windows/msys2-runtime/compare/master%5E%7B/Start.the.merging.rebase%7D...master

I even started collecting the exact tests that are failing with the
vanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes
that we could test things with AppVeyor (but the builds were already too
slow, we hit the timeout even before trying to run the tests, so I gave up
on that front):

	REM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these
	tests cannot pass:
	set GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506
	t1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150
	t4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006
	t6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001
	t9350 t9700 t9903'

The reason I did this was to avoid having to spend time in the CI job to
replace the vanilla MSYS2 runtime with Git for Windows' forked one (and
AppVeyor offers a -- rarely updated -- version of MSYS2 in its build
agents out of the box).

I might have dug deeper in order to skip only specific test cases, but as
AppVeyor was already a dead end...

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-29  6:46       ` Johannes Sixt
  2017-04-29 10:44         ` Johannes Schindelin
@ 2017-04-30 17:33         ` Ramsay Jones
  1 sibling, 0 replies; 9+ messages in thread
From: Ramsay Jones @ 2017-04-30 17:33 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Junio C Hamano, Johannes Schindelin, GIT Mailing-list



On 29/04/17 07:46, Johannes Sixt wrote:
> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:
>> On 28/04/17 20:54, Johannes Sixt wrote:
>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:

>>> t7400.20 does not fail for the MinGW port because the
>>> test case only operates on the file system, but never
>>> checks whether an entry 'sub\with\backslash' is present
>>> in the index.
>>
>> Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails
>> exactly the same as cygwin. Hmm, wait, let me just rebuild on
>> MinGW64 ... indeed it passes (well it passes t7400.20, but it
>> fails on t7400.11, 61, 63, 87 and 89)!
> 
> I don't observe these failures. Are you using a vanila MSYS2 environment?

I am indeed. I thought it would be suitable to use to test some
git patches on MinGW, but it seems I was wrong ... :(

ATB,
Ramsay Jones



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-29 10:44         ` Johannes Schindelin
@ 2017-04-30 18:00           ` Ramsay Jones
  2017-05-01 10:59             ` Johannes Schindelin
  0 siblings, 1 reply; 9+ messages in thread
From: Ramsay Jones @ 2017-04-30 18:00 UTC (permalink / raw)
  To: Johannes Schindelin, Johannes Sixt; +Cc: Junio C Hamano, GIT Mailing-list



On 29/04/17 11:44, Johannes Schindelin wrote:

> On Sat, 29 Apr 2017, Johannes Sixt wrote:
>> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:
>>> On 28/04/17 20:54, Johannes Sixt wrote:
>>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
>>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:

>> I don't observe these failures. Are you using a vanila MSYS2 environment?
> 
> Please note that the "vanilla MSYS2 environment" is *not* expected to pass
> the test suite when compiling in MINGW mode. In fact, it is expected to
> fail.
> 
> In 2015, I made a couple of changes to the MSYS2 runtime in preparation
> for the big bump to Git for Windows 2.x (which switched from the old MSys
> environment to the new MSYS2 environment), and released Git for Windows
> 2.5.0 with a heavily patched msys-2.0.dll. My hope was that those changes
> would be welcome in the MSYS2 project, but well, they kinda weren't. So I
> was forced to abandon my original plan to contribute all of those fixes to
> "upstream MSYS2".

Oh WOW. I didn't know you were maintaining your own version of
the MSYS2 runtime. That must be a huge PITA. :-D

> To see the changes I (and others) made:
> 
> 	https://github.com/git-for-windows/msys2-runtime/compare/master%5E%7B/Start.the.merging.rebase%7D...master
> 
> I even started collecting the exact tests that are failing with the
> vanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes
> that we could test things with AppVeyor (but the builds were already too
> slow, we hit the timeout even before trying to run the tests, so I gave up
> on that front):
> 
> 	REM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these
> 	tests cannot pass:
> 	set GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506
> 	t1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150
> 	t4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006
> 	t6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001
> 	t9350 t9700 t9903'

I have only (fairly) recently installed MSYS2, so I've only ever
run the MinGW64 test-suite once, which for me failed on tests:

   t0003, t0006, t0026, t0060, t0200, t0204, t1100, t1400, t1402,
   t1501, t1504, t1506, t1508, t1513, t3001, t3070, t3200, t3301,
   t3400, t3404, t3406, t3703, t3903, t3905, t4208, t4211, t5000,
   t5500, t5516, t5601, t5602, t5603, t5615, t5801, t6006, t6018,
   t6030, t6038, t6130, t6132, t6300, t7201, t7400, t7401, t7406,
   t7501, t7610, t9001, t9020, t9350, t9700, t9903

(which I found somewhat intimidating!).

So, as you would expect, it hasn't improved much! :-P

Hmm, I was hoping to use this installation to test some git patches
on MinGW, but that looks like a lost cause. I may as well save some
disk space and delete it!

Thanks.

ATB,
Ramsay Jones



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path'
  2017-04-30 18:00           ` Ramsay Jones
@ 2017-05-01 10:59             ` Johannes Schindelin
  0 siblings, 0 replies; 9+ messages in thread
From: Johannes Schindelin @ 2017-05-01 10:59 UTC (permalink / raw)
  To: Ramsay Jones; +Cc: Johannes Sixt, Junio C Hamano, GIT Mailing-list

Hi Ramsay,


On Sun, 30 Apr 2017, Ramsay Jones wrote:

> On 29/04/17 11:44, Johannes Schindelin wrote:
> 
> > On Sat, 29 Apr 2017, Johannes Sixt wrote:
> >> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:
> >>> On 28/04/17 20:54, Johannes Sixt wrote:
> >>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:
> >>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> 
> >> I don't observe these failures. Are you using a vanila MSYS2
> >> environment?
> > 
> > Please note that the "vanilla MSYS2 environment" is *not* expected to
> > pass the test suite when compiling in MINGW mode. In fact, it is
> > expected to fail.
> > 
> > In 2015, I made a couple of changes to the MSYS2 runtime in
> > preparation for the big bump to Git for Windows 2.x (which switched
> > from the old MSys environment to the new MSYS2 environment), and
> > released Git for Windows 2.5.0 with a heavily patched msys-2.0.dll. My
> > hope was that those changes would be welcome in the MSYS2 project, but
> > well, they kinda weren't. So I was forced to abandon my original plan
> > to contribute all of those fixes to "upstream MSYS2".
> 
> Oh WOW. I didn't know you were maintaining your own version of
> the MSYS2 runtime. That must be a huge PITA. :-D

I manage. The long years of maintaining Git for Windows as a fork of Git
helps. I use the exact same strategy: merging rebases.

Amazingly, the Cygwin project itself has been quite open to accept my
patches, and the only problem there is time: I would like to contribute
more patches there, I get really valuable feedback, and I just need to
find the time to iterate the patches so they can be accepted.

> > I even started collecting the exact tests that are failing with the
> > vanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes
> > that we could test things with AppVeyor (but the builds were already
> > too slow, we hit the timeout even before trying to run the tests, so I
> > gave up on that front):
> > 
> > 	REM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these
> > 	tests cannot pass:
> > 	set GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506
> > 	t1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150
> > 	t4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006
> > 	t6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001
> > 	t9350 t9700 t9903'
> 
> I have only (fairly) recently installed MSYS2, so I've only ever
> run the MinGW64 test-suite once, which for me failed on tests:
> 
>    t0003, t0006, t0026, t0060, t0200, t0204, t1100, t1400, t1402,
>    t1501, t1504, t1506, t1508, t1513, t3001, t3070, t3200, t3301,
>    t3400, t3404, t3406, t3703, t3903, t3905, t4208, t4211, t5000,
>    t5500, t5516, t5601, t5602, t5603, t5615, t5801, t6006, t6018,
>    t6030, t6038, t6130, t6132, t6300, t7201, t7400, t7401, t7406,
>    t7501, t7610, t9001, t9020, t9350, t9700, t9903
> 
> (which I found somewhat intimidating!).

Yes, I expected the number to rise. Note that almost every patch in Git
for Windows' fork fixes a couple of test scripts at a time.

> So, as you would expect, it hasn't improved much! :-P
> 
> Hmm, I was hoping to use this installation to test some git patches
> on MinGW, but that looks like a lost cause. I may as well save some
> disk space and delete it!

Hopefully I (or other Git for Windows contributors) will have some time to
make installing a Git for Windows development environment as easy as

	git clone --depth 1 https://github.com/git-for-windows/git-skd-64

Then you do not even need to worry to keep a local installation
up-to-date. You'd just reclone when (if) needed.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-05-01 10:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-28  1:53 [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\ in path' Ramsay Jones
2017-04-28  3:09 ` Junio C Hamano
2017-04-28 19:54   ` Johannes Sixt
2017-04-29  0:15     ` Ramsay Jones
2017-04-29  6:46       ` Johannes Sixt
2017-04-29 10:44         ` Johannes Schindelin
2017-04-30 18:00           ` Ramsay Jones
2017-05-01 10:59             ` Johannes Schindelin
2017-04-30 17:33         ` Ramsay Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).