{"thread":{"id":"45823","subject":"[PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","startedAt":"2017-04-28T01:53:52Z","lastAt":"2017-05-01T10:59:33Z","messageCount":9,"participants":["Ramsay Jones","Junio C Hamano","Johannes Sixt","Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"318112","messageId":"5b8e0f3a-0b64-1384-d830-5b65a43e44c4@ramsayjones.plus.com","threadId":"45823","inReplyTo":null,"subject":"[PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-04-28T01:53:40Z","receivedAt":"2017-04-28T01:53:52Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\nCommit cf9e55f494 (\"submodule: prevent backslash expantion in submodule\nnames\", 07-04-2017) added a test which creates a git repository with\nsome backslash characters in the name. This test cannot work on windows,\nsince the backslash is used as the directory separator. In order to\nsuppress this test on cygwin, MinGW and Git for Windows, we add the\nBSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).\n\nSigned-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\n---\n\nHi Junio,\n\nI built v2.13.0-rc1 and ran the test-suite on cygwin this evening and\nhad an additional failure, over and above the failures reported for\nv2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin\n(and MinGW and GfW, so it would be good to hear success reports from\nboth Johannes).\n\nThanks!\n\nATB,\nRamsay Jones\n\n t/t7400-submodule-basic.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh\nindex c2706fe47..0d83153f3 100755\n--- a/t/t7400-submodule-basic.sh\n+++ b/t/t7400-submodule-basic.sh\n@@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '\n \ttest_cmp empty untracked\n '\n \n-test_expect_success 'submodule add with \\\\ in path' '\n+test_expect_success BSLASHPSPEC 'submodule add with \\\\ in path' '\n \ttest_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n \n \t# Initialize a repo with a backslash in its name\n-- \n2.12.0\n"},{"id":"318116","messageId":"xmqqk265kz2v.fsf@gitster.mtv.corp.google.com","threadId":"45823","inReplyTo":"5b8e0f3a-0b64-1384-d830-5b65a43e44c4@ramsayjones.plus.com","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-04-28T03:09:28Z","receivedAt":"2017-04-28T03:09:37Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n> Commit cf9e55f494 (\"submodule: prevent backslash expantion in submodule\n> names\", 07-04-2017) added a test which creates a git repository with\n> some backslash characters in the name. This test cannot work on windows,\n> since the backslash is used as the directory separator. In order to\n> suppress this test on cygwin, MinGW and Git for Windows, we add the\n> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).\n>\n> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\n> ---\n>\n> Hi Junio,\n>\n> I built v2.13.0-rc1 and ran the test-suite on cygwin this evening and\n> had an additional failure, over and above the failures reported for\n> v2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin\n> (and MinGW and GfW, so it would be good to hear success reports from\n> both Johannes).\n>\n> Thanks!\n\nThanks.  Will queue and hopefully we can merge it to 'master' before\nthe next -rc.\n\n>\n> ATB,\n> Ramsay Jones\n>\n>  t/t7400-submodule-basic.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh\n> index c2706fe47..0d83153f3 100755\n> --- a/t/t7400-submodule-basic.sh\n> +++ b/t/t7400-submodule-basic.sh\n> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '\n>  \ttest_cmp empty untracked\n>  '\n>  \n> -test_expect_success 'submodule add with \\\\ in path' '\n> +test_expect_success BSLASHPSPEC 'submodule add with \\\\ in path' '\n>  \ttest_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n>  \n>  \t# Initialize a repo with a backslash in its name\n"},{"id":"318198","messageId":"7cd09c17-30a1-b157-2454-4c9b399a8628@kdbg.org","threadId":"45823","inReplyTo":"xmqqk265kz2v.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2017-04-28T19:54:57Z","receivedAt":"2017-04-28T19:55:07Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n>\n>> Commit cf9e55f494 (\"submodule: prevent backslash expantion in submodule\n>> names\", 07-04-2017) added a test which creates a git repository with\n>> some backslash characters in the name. This test cannot work on windows,\n>> since the backslash is used as the directory separator. In order to\n>> suppress this test on cygwin, MinGW and Git for Windows, we add the\n>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).\n\nFirst, let me say that meaning of BSLASHPSPEC was \"keeps backslaches in \npathspec arguments\" originally, but it apparently changed meaning since \nthen.\n\nThe prerequisite was introduced in 6fd1106aa4 because the MinGW port \nrewrites backslashes in command arguments that undergo the '\\'->\"/\" \ntransformation introduced for prefix_filename() in 25fe217b86. It \ndestroys the backslashes that could otherwise be used to escape globbing \ncharacters. t3700 does just that.\n\nSince Cygwin does not do this rewriting, the original CYGWIN section in \ntest-lib.sh had the prerequisite, just like the default (POSIX). But it \nwas removed by 5b5d53cbe5 (t4135-*.sh: Skip the \"backslash\" tests on \ncygwin), and that is where BSLASHPSPEC changed meaning. That commit even \ncarries my Acked-by (!), even though I can't recall giving it and I \ndon't find it in the conversation about the patch:\n\nhttps://public-inbox.org/git/4D07B977.9010502@ramsay1.demon.co.uk/\n\n>> I built v2.13.0-rc1 and ran the test-suite on cygwin this evening and\n>> had an additional failure, over and above the failures reported for\n>> v2.13.0-rc0, namely t7400.20. This patch elides that test for cygwin\n>> (and MinGW and GfW, so it would be good to hear success reports from\n>> both Johannes).\n\nt7400.20 does not fail for the MinGW port because the test case only \noperates on the file system, but never checks whether an entry \n'sub\\with\\backslash' is present in the index.\n\n>> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '\n>>  \ttest_cmp empty untracked\n>>  '\n>>\n>> -test_expect_success 'submodule add with \\\\ in path' '\n>> +test_expect_success BSLASHPSPEC 'submodule add with \\\\ in path' '\n>>  \ttest_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n>>\n>>  \t# Initialize a repo with a backslash in its name\n>\n\nI assume the test fails right at 'git init' under Cygwin?\n\nBSLASHPSPEC (with its *new* meaning) would be the right prerequisite if \nthe check for the index entry were added. Until then, !CYGWIN is more \nappropriate.\n\n-- Hannes\n\n"},{"id":"318226","messageId":"a575542a-e5b6-389f-e240-d5ac5a4b4107@ramsayjones.plus.com","threadId":"45823","inReplyTo":"7cd09c17-30a1-b157-2454-4c9b399a8628@kdbg.org","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-04-29T00:15:07Z","receivedAt":"2017-04-29T00:15:15Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\n\nOn 28/04/17 20:54, Johannes Sixt wrote:\n> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n>>\n>>> Commit cf9e55f494 (\"submodule: prevent backslash expantion in submodule\n>>> names\", 07-04-2017) added a test which creates a git repository with\n>>> some backslash characters in the name. This test cannot work on windows,\n>>> since the backslash is used as the directory separator. In order to\n>>> suppress this test on cygwin, MinGW and Git for Windows, we add the\n>>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).\n> \n> First, let me say that meaning of BSLASHPSPEC was\n> \"keeps backslaches in pathspec arguments\" originally,\n> but it apparently changed meaning since then.\n\nIndeed. I started to give some of the history in the commit message, but\nit was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and\nc51c0da222' ... ;-)\n \n> t7400.20 does not fail for the MinGW port because the\n> test case only operates on the file system, but never\n> checks whether an entry 'sub\\with\\backslash' is present\n> in the index.\n\nAh, OK. I only looked at my (64-bit) MSYS2 build, which fails\nexactly the same as cygwin. Hmm, wait, let me just rebuild on\nMinGW64 ... indeed it passes (well it passes t7400.20, but it\nfails on t7400.11, 61, 63, 87 and 89)!\n\n> \n>>> @@ -273,7 +273,7 @@ test_expect_success 'submodule add with ./, /.. and // in path' '\n>>>      test_cmp empty untracked\n>>>  '\n>>>\n>>> -test_expect_success 'submodule add with \\\\ in path' '\n>>> +test_expect_success BSLASHPSPEC 'submodule add with \\\\ in path' '\n>>>      test_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n>>>\n>>>      # Initialize a repo with a backslash in its name\n>>\n> \n> I assume the test fails right at 'git init' under Cygwin?\n\nIndeed. Also on MSYS2 (exactly as on cygwin):\n\nramsay@satellite  MSYS $ ./t7400-submodule-basic.sh -i -v\n\n...\n\nok 19 - submodule add with ./, /.. and // in path\n\nexpecting success:\n        test_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n\n        # Initialize a repo with a backslash in its name\n        git init sub\\\\with\\\\backslash &&\n        touch sub\\\\with\\\\backslash/empty.file &&\n        git -C sub\\\\with\\\\backslash add empty.file &&\n        git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\" &&\n\n        # Add that repository as a submodule\n        git init parent &&\n        git -C parent submodule add ../sub\\\\with\\\\backslash\n\nfatal: cannot mkdir sub\\with\\backslash: No such file or directory\nnot ok 20 - submodule add with \\\\ in path\n#\n#               test_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n#\n#               # Initialize a repo with a backslash in its name\n#               git init sub\\\\with\\\\backslash &&\n#               touch sub\\\\with\\\\backslash/empty.file &&\n#               git -C sub\\\\with\\\\backslash add empty.file &&\n#               git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\" &&\n#\n#               # Add that repository as a submodule\n#               git init parent &&\n#               git -C parent submodule add ../sub\\\\with\\\\backslash\n#\nramsay@satellite  MSYS $\n\nramsay@satellite  MSYS $ cd trash\\ directory.t7400-submodule-basic/\n\nramsay@satellite  MSYS $ ls\na       addtest/         empty   expect-head   head   head-sha1  untracked\nactual  addtest-ignore/  expect  expect-heads  heads  t          z\n\nramsay@satellite  MSYS $ git init sub\\\\with\\\\backslash\nfatal: cannot mkdir sub\\with\\backslash: No such file or directory\n\nramsay@satellite  MSYS $ mkdir -p sub\\\\with\n\nramsay@satellite  MSYS $ git init sub\\\\with\\\\backslash\nInitialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/sub/with/backslash/.git/\n\nramsay@satellite  MSYS $ touch sub\\\\with\\\\backslash/empty.file\nramsay@satellite  MSYS $ git -C sub\\\\with\\\\backslash add empty.file\nramsay@satellite  MSYS $ git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\"\n[master (root-commit) 6fde90b] Added empty.file\n 1 file changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 empty.file\n\nramsay@satellite  MSYS $ git init parent\nInitialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/.git/\n\nramsay@satellite  MSYS $ git -C parent submodule add ../sub\\\\with\\\\backslash\nCloning into '/home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub/with/backslash'...\ndone.\nfatal: Not a git repository: /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub\\with\\backslash/../.git/modules/sub/with/backslash\n\nramsay@satellite  MSYS $ echo $?\n128\nramsay@satellite  MSYS $\n\nDo you not see this on msys?\n\n> \n> BSLASHPSPEC (with its *new* meaning) would be the\n> right prerequisite if the check for the index entry\n> were added. Until then, !CYGWIN is more appropriate.\n\nOK, I'll re-roll the patch (tomorrow, it's late again).\n\nThanks.\n\nATB,\nRamsay Jones\n\n\n"},{"id":"318229","messageId":"f9dfd9b4-e753-1a53-175e-8f20fe904501@kdbg.org","threadId":"45823","inReplyTo":"a575542a-e5b6-389f-e240-d5ac5a4b4107@ramsayjones.plus.com","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2017-04-29T06:46:59Z","receivedAt":"2017-04-29T06:47:11Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 29.04.2017 um 02:15 schrieb Ramsay Jones:\n>\n>\n> On 28/04/17 20:54, Johannes Sixt wrote:\n>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n>>>\n>>>> Commit cf9e55f494 (\"submodule: prevent backslash expantion in submodule\n>>>> names\", 07-04-2017) added a test which creates a git repository with\n>>>> some backslash characters in the name. This test cannot work on windows,\n>>>> since the backslash is used as the directory separator. In order to\n>>>> suppress this test on cygwin, MinGW and Git for Windows, we add the\n>>>> BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and c51c0da222).\n>>\n>> First, let me say that meaning of BSLASHPSPEC was\n>> \"keeps backslaches in pathspec arguments\" originally,\n>> but it apparently changed meaning since then.\n>\n> Indeed. I started to give some of the history in the commit message, but\n> it was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and\n> c51c0da222' ... ;-)\n>\n>> t7400.20 does not fail for the MinGW port because the\n>> test case only operates on the file system, but never\n>> checks whether an entry 'sub\\with\\backslash' is present\n>> in the index.\n>\n> Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails\n> exactly the same as cygwin. Hmm, wait, let me just rebuild on\n> MinGW64 ... indeed it passes (well it passes t7400.20, but it\n> fails on t7400.11, 61, 63, 87 and 89)!\n\nI don't observe these failures. Are you using a vanila MSYS2 \nenvironment? The exact failure modes would be interesting, if you want \nto hear \"Ah, Git for Windows does this and that to make this work\". ;)\n\n>> I assume the test fails right at 'git init' under Cygwin?\n>\n> Indeed. Also on MSYS2 (exactly as on cygwin):\n>\n> ramsay@satellite  MSYS $ ./t7400-submodule-basic.sh -i -v\n>\n> ...\n>\n> ok 19 - submodule add with ./, /.. and // in path\n>\n> expecting success:\n>         test_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n>\n>         # Initialize a repo with a backslash in its name\n>         git init sub\\\\with\\\\backslash &&\n>         touch sub\\\\with\\\\backslash/empty.file &&\n>         git -C sub\\\\with\\\\backslash add empty.file &&\n>         git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\" &&\n>\n>         # Add that repository as a submodule\n>         git init parent &&\n>         git -C parent submodule add ../sub\\\\with\\\\backslash\n>\n> fatal: cannot mkdir sub\\with\\backslash: No such file or directory\n> not ok 20 - submodule add with \\\\ in path\n> #\n> #               test_when_finished \"rm -rf parent sub\\\\with\\\\backslash\" &&\n> #\n> #               # Initialize a repo with a backslash in its name\n> #               git init sub\\\\with\\\\backslash &&\n> #               touch sub\\\\with\\\\backslash/empty.file &&\n> #               git -C sub\\\\with\\\\backslash add empty.file &&\n> #               git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\" &&\n> #\n> #               # Add that repository as a submodule\n> #               git init parent &&\n> #               git -C parent submodule add ../sub\\\\with\\\\backslash\n> #\n> ramsay@satellite  MSYS $\n>\n> ramsay@satellite  MSYS $ cd trash\\ directory.t7400-submodule-basic/\n>\n> ramsay@satellite  MSYS $ ls\n> a       addtest/         empty   expect-head   head   head-sha1  untracked\n> actual  addtest-ignore/  expect  expect-heads  heads  t          z\n>\n> ramsay@satellite  MSYS $ git init sub\\\\with\\\\backslash\n> fatal: cannot mkdir sub\\with\\backslash: No such file or directory\n>\n> ramsay@satellite  MSYS $ mkdir -p sub\\\\with\n\nOK: git init calls mkdir(\"sub\\\\with\\\\backslash\"), which does not create \nthe missing directories automatically. Therefore, this mkdir helps. In \nthe next call, the OS functions behind mkdir simply take the backslashes \nas directory separators:\n\n>\n> ramsay@satellite  MSYS $ git init sub\\\\with\\\\backslash\n> Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/sub/with/backslash/.git/\n>\n> ramsay@satellite  MSYS $ touch sub\\\\with\\\\backslash/empty.file\n> ramsay@satellite  MSYS $ git -C sub\\\\with\\\\backslash add empty.file\n> ramsay@satellite  MSYS $ git -C sub\\\\with\\\\backslash commit -m \"Added empty.file\"\n> [master (root-commit) 6fde90b] Added empty.file\n>  1 file changed, 0 insertions(+), 0 deletions(-)\n>  create mode 100644 empty.file\n>\n> ramsay@satellite  MSYS $ git init parent\n> Initialized empty Git repository in /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/.git/\n>\n> ramsay@satellite  MSYS $ git -C parent submodule add ../sub\\\\with\\\\backslash\n> Cloning into '/home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub/with/backslash'...\n> done.\n> fatal: Not a git repository: /home/ramsay/git/t/trash directory.t7400-submodule-basic/parent/sub\\with\\backslash/../.git/modules/sub/with/backslash\n\nMSYS git does not know that the backslash is a directory separator. \nHence, it constructs a path with only a single .. component thinking \nthat this walks above sub\\with\\backslash to end up in parent/; but the \nunderlying OS operation interprets the backslashes as directory \nseparator and ends up in parent/sub\\with\\. Of coures, no .git directory \nis at this point, hence the failure.\n\nMinGW git, however, knows about the backslash's meaning and constructs a \npath containing ../../.. to walk sufficiently high up in the hierarchy \nand finds the .git directory.\n\n-- Hannes\n\n"},{"id":"318232","messageId":"alpine.DEB.2.20.1704291232410.3480@virtualbox","threadId":"45823","inReplyTo":"f9dfd9b4-e753-1a53-175e-8f20fe904501@kdbg.org","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-04-29T10:44:06Z","receivedAt":"2017-04-29T10:44:21Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sat, 29 Apr 2017, Johannes Sixt wrote:\n\n> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:\n> >\n> > On 28/04/17 20:54, Johannes Sixt wrote:\n> > > Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n> > > > Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n> > > >\n> > > > > Commit cf9e55f494 (\"submodule: prevent backslash expantion in\n> > > > > submodule\n> > > > > names\", 07-04-2017) added a test which creates a git repository with\n> > > > > some backslash characters in the name. This test cannot work on\n> > > > > windows,\n> > > > > since the backslash is used as the directory separator. In order to\n> > > > > suppress this test on cygwin, MinGW and Git for Windows, we add the\n> > > > > BSLASHPSPEC prerequisite. (see also commits 6fd1106aa4 and\n> > > > > c51c0da222).\n> > >\n> > > First, let me say that meaning of BSLASHPSPEC was\n> > > \"keeps backslaches in pathspec arguments\" originally,\n> > > but it apparently changed meaning since then.\n> >\n> > Indeed. I started to give some of the history in the commit message, but\n> > it was nearly 3am, so I punted with the 'see also commits 6fd1106aa4 and\n> > c51c0da222' ... ;-)\n> >\n> > > t7400.20 does not fail for the MinGW port because the\n> > > test case only operates on the file system, but never\n> > > checks whether an entry 'sub\\with\\backslash' is present\n> > > in the index.\n> >\n> > Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails\n> > exactly the same as cygwin. Hmm, wait, let me just rebuild on\n> > MinGW64 ... indeed it passes (well it passes t7400.20, but it\n> > fails on t7400.11, 61, 63, 87 and 89)!\n> \n> I don't observe these failures. Are you using a vanila MSYS2 environment?\n\nPlease note that the \"vanilla MSYS2 environment\" is *not* expected to pass\nthe test suite when compiling in MINGW mode. In fact, it is expected to\nfail.\n\nIn 2015, I made a couple of changes to the MSYS2 runtime in preparation\nfor the big bump to Git for Windows 2.x (which switched from the old MSys\nenvironment to the new MSYS2 environment), and released Git for Windows\n2.5.0 with a heavily patched msys-2.0.dll. My hope was that those changes\nwould be welcome in the MSYS2 project, but well, they kinda weren't. So I\nwas forced to abandon my original plan to contribute all of those fixes to\n\"upstream MSYS2\".\n\nTo see the changes I (and others) made:\n\n\thttps://github.com/git-for-windows/msys2-runtime/compare/master%5E%7B/Start.the.merging.rebase%7D...master\n\nI even started collecting the exact tests that are failing with the\nvanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes\nthat we could test things with AppVeyor (but the builds were already too\nslow, we hit the timeout even before trying to run the tests, so I gave up\non that front):\n\n\tREM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these\n\ttests cannot pass:\n\tset GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506\n\tt1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150\n\tt4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006\n\tt6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001\n\tt9350 t9700 t9903'\n\nThe reason I did this was to avoid having to spend time in the CI job to\nreplace the vanilla MSYS2 runtime with Git for Windows' forked one (and\nAppVeyor offers a -- rarely updated -- version of MSYS2 in its build\nagents out of the box).\n\nI might have dug deeper in order to skip only specific test cases, but as\nAppVeyor was already a dead end...\n\nCiao,\nDscho\n"},{"id":"318264","messageId":"4238aa44-0d9b-0b47-3bd1-61dee6cd3561@ramsayjones.plus.com","threadId":"45823","inReplyTo":"f9dfd9b4-e753-1a53-175e-8f20fe904501@kdbg.org","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-04-30T17:33:55Z","receivedAt":"2017-04-30T17:34:05Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\n\nOn 29/04/17 07:46, Johannes Sixt wrote:\n> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:\n>> On 28/04/17 20:54, Johannes Sixt wrote:\n>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n>>> t7400.20 does not fail for the MinGW port because the\n>>> test case only operates on the file system, but never\n>>> checks whether an entry 'sub\\with\\backslash' is present\n>>> in the index.\n>>\n>> Ah, OK. I only looked at my (64-bit) MSYS2 build, which fails\n>> exactly the same as cygwin. Hmm, wait, let me just rebuild on\n>> MinGW64 ... indeed it passes (well it passes t7400.20, but it\n>> fails on t7400.11, 61, 63, 87 and 89)!\n> \n> I don't observe these failures. Are you using a vanila MSYS2 environment?\n\nI am indeed. I thought it would be suitable to use to test some\ngit patches on MinGW, but it seems I was wrong ... :(\n\nATB,\nRamsay Jones\n\n\n"},{"id":"318265","messageId":"4f88f1ec-eedc-1249-ef12-238a73d1dc7a@ramsayjones.plus.com","threadId":"45823","inReplyTo":"alpine.DEB.2.20.1704291232410.3480@virtualbox","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2017-04-30T18:00:31Z","receivedAt":"2017-04-30T18:23:38Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\n\nOn 29/04/17 11:44, Johannes Schindelin wrote:\n\n> On Sat, 29 Apr 2017, Johannes Sixt wrote:\n>> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:\n>>> On 28/04/17 20:54, Johannes Sixt wrote:\n>>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n>>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n>> I don't observe these failures. Are you using a vanila MSYS2 environment?\n> \n> Please note that the \"vanilla MSYS2 environment\" is *not* expected to pass\n> the test suite when compiling in MINGW mode. In fact, it is expected to\n> fail.\n> \n> In 2015, I made a couple of changes to the MSYS2 runtime in preparation\n> for the big bump to Git for Windows 2.x (which switched from the old MSys\n> environment to the new MSYS2 environment), and released Git for Windows\n> 2.5.0 with a heavily patched msys-2.0.dll. My hope was that those changes\n> would be welcome in the MSYS2 project, but well, they kinda weren't. So I\n> was forced to abandon my original plan to contribute all of those fixes to\n> \"upstream MSYS2\".\n\nOh WOW. I didn't know you were maintaining your own version of\nthe MSYS2 runtime. That must be a huge PITA. :-D\n\n> To see the changes I (and others) made:\n> \n> \thttps://github.com/git-for-windows/msys2-runtime/compare/master%5E%7B/Start.the.merging.rebase%7D...master\n> \n> I even started collecting the exact tests that are failing with the\n> vanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes\n> that we could test things with AppVeyor (but the builds were already too\n> slow, we hit the timeout even before trying to run the tests, so I gave up\n> on that front):\n> \n> \tREM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these\n> \ttests cannot pass:\n> \tset GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506\n> \tt1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150\n> \tt4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006\n> \tt6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001\n> \tt9350 t9700 t9903'\n\nI have only (fairly) recently installed MSYS2, so I've only ever\nrun the MinGW64 test-suite once, which for me failed on tests:\n\n   t0003, t0006, t0026, t0060, t0200, t0204, t1100, t1400, t1402,\n   t1501, t1504, t1506, t1508, t1513, t3001, t3070, t3200, t3301,\n   t3400, t3404, t3406, t3703, t3903, t3905, t4208, t4211, t5000,\n   t5500, t5516, t5601, t5602, t5603, t5615, t5801, t6006, t6018,\n   t6030, t6038, t6130, t6132, t6300, t7201, t7400, t7401, t7406,\n   t7501, t7610, t9001, t9020, t9350, t9700, t9903\n\n(which I found somewhat intimidating!).\n\nSo, as you would expect, it hasn't improved much! :-P\n\nHmm, I was hoping to use this installation to test some git patches\non MinGW, but that looks like a lost cause. I may as well save some\ndisk space and delete it!\n\nThanks.\n\nATB,\nRamsay Jones\n\n\n"},{"id":"318358","messageId":"alpine.DEB.2.20.1705011221480.3480@virtualbox","threadId":"45823","inReplyTo":"4f88f1ec-eedc-1249-ef12-238a73d1dc7a@ramsayjones.plus.com","subject":"Re: [PATCH] t7400: add BSLASHPSPEC prerequisite to 'add with \\\\ in path'","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-05-01T10:59:14Z","receivedAt":"2017-05-01T10:59:33Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Ramsay,\n\n\nOn Sun, 30 Apr 2017, Ramsay Jones wrote:\n\n> On 29/04/17 11:44, Johannes Schindelin wrote:\n> \n> > On Sat, 29 Apr 2017, Johannes Sixt wrote:\n> >> Am 29.04.2017 um 02:15 schrieb Ramsay Jones:\n> >>> On 28/04/17 20:54, Johannes Sixt wrote:\n> >>>> Am 28.04.2017 um 05:09 schrieb Junio C Hamano:\n> >>>>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n> \n> >> I don't observe these failures. Are you using a vanila MSYS2\n> >> environment?\n> > \n> > Please note that the \"vanilla MSYS2 environment\" is *not* expected to\n> > pass the test suite when compiling in MINGW mode. In fact, it is\n> > expected to fail.\n> > \n> > In 2015, I made a couple of changes to the MSYS2 runtime in\n> > preparation for the big bump to Git for Windows 2.x (which switched\n> > from the old MSys environment to the new MSYS2 environment), and\n> > released Git for Windows 2.5.0 with a heavily patched msys-2.0.dll. My\n> > hope was that those changes would be welcome in the MSYS2 project, but\n> > well, they kinda weren't. So I was forced to abandon my original plan\n> > to contribute all of those fixes to \"upstream MSYS2\".\n> \n> Oh WOW. I didn't know you were maintaining your own version of\n> the MSYS2 runtime. That must be a huge PITA. :-D\n\nI manage. The long years of maintaining Git for Windows as a fork of Git\nhelps. I use the exact same strategy: merging rebases.\n\nAmazingly, the Cygwin project itself has been quite open to accept my\npatches, and the only problem there is time: I would like to contribute\nmore patches there, I get really valuable feedback, and I just need to\nfind the time to iterate the patches so they can be accepted.\n\n> > I even started collecting the exact tests that are failing with the\n> > vanilla MSYS2 runtime vs Git for Windows' fork, when I still had hopes\n> > that we could test things with AppVeyor (but the builds were already\n> > too slow, we hit the timeout even before trying to run the tests, so I\n> > gave up on that front):\n> > \n> > \tREM MSYS2's runtime does not carry Git for Windows' tweaks yet, so these\n> > \ttests cannot pass:\n> > \tset GIT_SKIP_TESTS='t0003 t0006 t0024 t1100 t1400 t1402 t1501 t1504 t1506\n> > \tt1508 t1513 t3001 t3070 t3200 t3301 t3400 t3404 t3513 t3703 t4116 t4150\n> > \tt4208 t4211 t5000 t5001 t5002 t5004 t5500 t5601 t5602 t5603 t5801 t6006\n> > \tt6018 t6041 t6130 t6132 t6300 t7201 t7400 t7501 t7502 t8002 t8006 t9001\n> > \tt9350 t9700 t9903'\n> \n> I have only (fairly) recently installed MSYS2, so I've only ever\n> run the MinGW64 test-suite once, which for me failed on tests:\n> \n>    t0003, t0006, t0026, t0060, t0200, t0204, t1100, t1400, t1402,\n>    t1501, t1504, t1506, t1508, t1513, t3001, t3070, t3200, t3301,\n>    t3400, t3404, t3406, t3703, t3903, t3905, t4208, t4211, t5000,\n>    t5500, t5516, t5601, t5602, t5603, t5615, t5801, t6006, t6018,\n>    t6030, t6038, t6130, t6132, t6300, t7201, t7400, t7401, t7406,\n>    t7501, t7610, t9001, t9020, t9350, t9700, t9903\n> \n> (which I found somewhat intimidating!).\n\nYes, I expected the number to rise. Note that almost every patch in Git\nfor Windows' fork fixes a couple of test scripts at a time.\n\n> So, as you would expect, it hasn't improved much! :-P\n> \n> Hmm, I was hoping to use this installation to test some git patches\n> on MinGW, but that looks like a lost cause. I may as well save some\n> disk space and delete it!\n\nHopefully I (or other Git for Windows contributors) will have some time to\nmake installing a Git for Windows development environment as easy as\n\n\tgit clone --depth 1 https://github.com/git-for-windows/git-skd-64\n\nThen you do not even need to worry to keep a local installation\nup-to-date. You'd just reclone when (if) needed.\n\nCiao,\nDscho\n"}]}