git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 13/19] mingw: outsmart MSYS2's path substitution in t1508

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 25, 2016, 17:04 UTC
Message-ID
<alpine.DEB.2.20.1601251751350.2964@virtualbox>
In-Reply-To
<alpine.DEB.2.20.1601251727370.2964@virtualbox>
Hi Junio,
On Mon, 25 Jan 2016, Johannes Schindelin wrote:
Show 50 quoted lines
> On Sun, 24 Jan 2016, Junio C Hamano wrote:
> 
> > Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> > 
> > > From: Thomas Braun <thomas.braun@byte-physics.de>
> > >
> > > A string of the form "@/abcd" is considered a file path
> > > by the msys layer and therefore translated to a Windows path.
> > >
> > > Here the trick is to double the slashes.
> > >
> > > The MSYS2 patch translation can be studied by calling
> > >
> > > 	test-path-utils print_path <path>
> > >
> > > Signed-off-by: Thomas Braun <thomas.braun@byte-physics.de>
> > > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > > ---
> > 
> > This feels wrong.
> > 
> > The point of this test is that you can ask to checkout a branch
> > whose name is a strangely looking "@/at-test", and a ref whose name
> > is "refs/heads/@/at-test" indeed is created.
> > 
> > The current "checkout" may be lazy and not signal an error for a
> > branch name with two consecutive slashes, but I wouldn't be
> > surprised if we tighten that later, and more importantly, I do not
> > think we ever promised users if you asked a branch "a//b" to be
> > created, we would create "refs/heads/a/b".
> > 
> > The new test hardcodes and promises such an incompatible behaviour,
> > i.e. a request to create "@//b" results in "@/b" created, only to
> > users on MINGW, fracturing the expectations of the Git userbase.
> > 
> > Wouldn't it be better to declare "On other people's Git, @/foo is
> > just as normal a branch name as a/foo, but on MINGW @/foo cannot be
> > used" by skipping some tests using prerequisites instead?
> 
> As Eric points out, this is not so much a behavior on Git as of the MSYS2
> Bash. In fact, if you call `git.exe checkout -b @/at-test` from a cmd
> window, it works just as advertised.
> 
> But your comment made me inspect the entire t9100 again, wondering why
> things work when we copy the contents instead of symlinking them. And you
> know what, even if I could have sworn that I verified for every patch in
> this series that it is actually necessary to pass the test suite, it is
> *not* necessary.
> 
> So I backed it out and it won't be part of v2 anymore.

Whoops. This was meant to be a comment on your comment on 12/19. I'll reply to the appropriate mail...

As to the patch 13/19 that we are discussing here, I agree that it is better to simply skip the test with the offending argument. See

	https://github.com/dscho/git/commit/ca5edbe

Ciao, Dscho

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 33 of 113 in “Let Git's tests pass on Windows”
  1. 00/19 Let Git's tests pass on WindowsJohannes Schindelin, Jan 24, 2016
  2. 01/19 mingw: let's use gettext with MSYS2Johannes Schindelin, Jan 24, 2016
  3. Junio C HamanoJan 25, 2016
  4. Johannes SchindelinJan 25, 2016
  5. Junio C HamanoJan 25, 2016
  6. 02/19 mingw: do not trust MSYS2's MinGW gettext.shJohannes Schindelin, Jan 24, 2016
  7. 03/19 Git.pm: stop assuming that absolute paths start with a slashJohannes Schindelin, Jan 24, 2016
  8. 04/19 mingw: factor out Windows specific environment setupJohannes Schindelin, Jan 24, 2016
  9. 05/19 mingw: prepare the TMPDIR environment variable for shell scriptsJohannes Schindelin, Jan 24, 2016
  10. Eric SunshineJan 25, 2016
  11. Johannes SchindelinJan 26, 2016
  12. 06/19 mingw: try to delete target directory before renamingJohannes Schindelin, Jan 24, 2016
  13. Philip OakleyJan 24, 2016
  14. Johannes SchindelinJan 25, 2016
  15. Junio C HamanoJan 25, 2016
  16. Johannes SchindelinJan 26, 2016
  17. 07/19 mingw: let lstat() fail with errno == ENOTDIR when appropriateJohannes Schindelin, Jan 24, 2016
  18. 08/19 mingw: fix t5601-clone.shJohannes Schindelin, Jan 24, 2016
  19. 09/19 mingw: accomodate t0060-path-utils for MSYS2Johannes Schindelin, Jan 24, 2016
  20. Johannes SixtJan 24, 2016
  21. Johannes SchindelinJan 25, 2016
  22. 10/19 mingw: disable mkfifo-based testsJohannes Schindelin, Jan 24, 2016
  23. 11/19 tests: turn off git-daemon tests if FIFOs are not availableJohannes Schindelin, Jan 24, 2016
  24. 12/19 mingw: do not use symlinks with SVN in t9100Johannes Schindelin, Jan 24, 2016
  25. Junio C HamanoJan 25, 2016
  26. Johannes SchindelinJan 25, 2016
  27. 13/19 mingw: outsmart MSYS2's path substitution in t1508Johannes Schindelin, Jan 24, 2016
  28. Junio C HamanoJan 25, 2016
  29. Eric SunshineJan 25, 2016
  30. Junio C HamanoJan 25, 2016
  31. Johannes SchindelinJan 26, 2016
  32. Johannes SchindelinJan 25, 2016
  33. Johannes SchindelinJan 25, 2016
  34. 14/19 mingw: fix t9700's assumption about directory separatorsJohannes Schindelin, Jan 24, 2016
  35. 15/19 mingw: work around pwd issues in the testsJohannes Schindelin, Jan 24, 2016
  36. 16/19 mingw: avoid absolute path in t0008Johannes Schindelin, Jan 24, 2016
  37. Junio C HamanoJan 25, 2016
  38. Johannes SchindelinJan 25, 2016
  39. Ray DonnellyJan 25, 2016
  40. Junio C HamanoJan 25, 2016
  41. Johannes SchindelinJan 26, 2016
  42. 17/19 mingw: fix git-svn tests that expect chmod to workJohannes Schindelin, Jan 24, 2016
  43. Junio C HamanoJan 25, 2016
  44. Johannes SchindelinJan 26, 2016
  45. Junio C HamanoJan 26, 2016
  46. 18/19 mingw: skip a couple of git-svn tests that cannot pass on WindowsJohannes Schindelin, Jan 24, 2016
  47. Junio C HamanoJan 25, 2016
  48. Johannes SchindelinJan 26, 2016
  49. 19/19 mingw: do not bother to test funny file namesJohannes Schindelin, Jan 24, 2016
  50. Junio C HamanoJan 25, 2016
  51. Johannes SchindelinJan 25, 2016
  52. 00/19 Let Git's tests pass on WindowsJohannes Schindelin, Jan 26, 2016
  53. 01/19 mingw: let's use gettext with MSYS2Johannes Schindelin, Jan 26, 2016
  54. 02/19 mingw: do not trust MSYS2's MinGW gettext.shJohannes Schindelin, Jan 26, 2016
  55. 03/19 Git.pm: stop assuming that absolute paths start with a slashJohannes Schindelin, Jan 26, 2016
  56. 04/19 mingw: factor out Windows specific environment setupJohannes Schindelin, Jan 26, 2016
  57. 05/19 mingw: prepare the TMPDIR environment variable for shell scriptsJohannes Schindelin, Jan 26, 2016
  58. 06/19 mingw: try to delete target directory before renamingJohannes Schindelin, Jan 26, 2016
  59. 07/19 mingw: let lstat() fail with errno == ENOTDIR when appropriateJohannes Schindelin, Jan 26, 2016
  60. 08/19 mingw: fix t5601-clone.shJohannes Schindelin, Jan 26, 2016
  61. 09/19 mingw: accomodate t0060-path-utils for MSYS2Johannes Schindelin, Jan 26, 2016
  62. 10/19 mingw: disable mkfifo-based testsJohannes Schindelin, Jan 26, 2016
  63. 11/19 tests: turn off git-daemon tests if FIFOs are not availableJohannes Schindelin, Jan 26, 2016
  64. 12/19 mingw: skip test in t1508 that fails due to path conversionJohannes Schindelin, Jan 26, 2016
  65. Junio C HamanoJan 26, 2016
  66. Johannes SchindelinJan 27, 2016
  67. Junio C HamanoJan 27, 2016
  68. Johannes SchindelinJan 28, 2016
  69. 13/19 mingw: fix t9700's assumption about directory separatorsJohannes Schindelin, Jan 26, 2016
  70. 14/19 mingw: work around pwd issues in the testsJohannes Schindelin, Jan 26, 2016
  71. 15/19 Avoid absolute path in t0008Johannes Schindelin, Jan 26, 2016
  72. 16/19 mingw: mark t9100's test cases with appropriate prereqsJohannes Schindelin, Jan 26, 2016
  73. Junio C HamanoJan 26, 2016
  74. Johannes SchindelinJan 27, 2016
  75. 17/19 mingw: avoid illegal filename in t9118Johannes Schindelin, Jan 26, 2016
  76. 18/19 mingw: handle the missing POSIXPERM prereq in t9124Johannes Schindelin, Jan 26, 2016
  77. Junio C HamanoJan 26, 2016
  78. Johannes SchindelinJan 27, 2016
  79. 19/19 mingw: do not bother to test funny file namesJohannes Schindelin, Jan 26, 2016
  80. Eric SunshineJan 26, 2016
  81. Junio C HamanoJan 26, 2016
  82. Johannes SchindelinJan 27, 2016
  83. Junio C HamanoJan 26, 2016
  84. Johannes SchindelinJan 27, 2016
  85. Junio C HamanoJan 27, 2016
  86. 00/20 Let Git's tests pass on WindowsJohannes Schindelin, Jan 27, 2016
  87. 01/20 mingw: let's use gettext with MSYS2Johannes Schindelin, Jan 27, 2016
  88. 02/20 mingw: do not trust MSYS2's MinGW gettext.shJohannes Schindelin, Jan 27, 2016
  89. 03/20 Git.pm: stop assuming that absolute paths start with a slashJohannes Schindelin, Jan 27, 2016
  90. 04/20 mingw: factor out Windows specific environment setupJohannes Schindelin, Jan 27, 2016
  91. 05/20 mingw: prepare the TMPDIR environment variable for shell scriptsJohannes Schindelin, Jan 27, 2016
  92. 06/20 mingw: try to delete target directory before renamingJohannes Schindelin, Jan 27, 2016
  93. 07/20 mingw: let lstat() fail with errno == ENOTDIR when appropriateJohannes Schindelin, Jan 27, 2016
  94. 08/20 mingw: fix t5601-clone.shJohannes Schindelin, Jan 27, 2016
  95. 09/20 mingw: accomodate t0060-path-utils for MSYS2Johannes Schindelin, Jan 27, 2016
  96. 10/20 mingw: disable mkfifo-based testsJohannes Schindelin, Jan 27, 2016
  97. 11/20 tests: turn off git-daemon tests if FIFOs are not availableJohannes Schindelin, Jan 27, 2016
  98. Eric SunshineJan 28, 2016
  99. Johannes SchindelinJan 28, 2016
  100. Junio C HamanoJan 28, 2016
  101. 12/20 mingw: skip test in t1508 that fails due to path conversionJohannes Schindelin, Jan 27, 2016
  102. 13/20 mingw: fix t9700's assumption about directory separatorsJohannes Schindelin, Jan 27, 2016
  103. 14/20 mingw: work around pwd issues in the testsJohannes Schindelin, Jan 27, 2016
  104. 15/20 Avoid absolute path in t0008Johannes Schindelin, Jan 27, 2016
  105. 16/20 mingw: mark t9100's test cases with appropriate prereqsJohannes Schindelin, Jan 27, 2016
  106. Johannes SchindelinJan 27, 2016
  107. 17/20 mingw: avoid illegal filename in t9118Johannes Schindelin, Jan 27, 2016
  108. 18/20 mingw: handle the missing POSIXPERM prereq in t9124Johannes Schindelin, Jan 27, 2016
  109. 19/20 mingw: skip a test in t9130 that cannot pass on WindowsJohannes Schindelin, Jan 27, 2016
  110. 20/20 mingw: do not bother to test funny file namesJohannes Schindelin, Jan 27, 2016
  111. Eric SunshineJan 28, 2016
  112. Johannes SchindelinJan 28, 2016
  113. Junio C HamanoJan 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.