t800[12]: work around MSys limitation
commite8d08871c97cf8e932ded11ef1659d5d14e4b36a
authorKarsten Blees <blees@dcon.de>
Thu, 17 Jul 2014 15:37:05 +0000 (17 17:37 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Jul 2014 16:39:57 +0000 (21 09:39 -0700)
tree8323c8454e227f0bbbae126c3fdd4cbb6bc35fa0
parent44cf1c0ef1989eb5cfcaec203b427ddeac2ecaa8
t800[12]: work around MSys limitation

MSys works very hard to convert Unix-style paths into DOS-style ones.
*Very* hard.

So hard, indeed, that

git blame -L/hello/,/green/

is translated into something like

git blame -LC:/msysgit/hello/,C:/msysgit/green/

As seen in msys_p2w in src\msys\msys\rt\src\winsup\cygwin\path.cc, line
3204ff:

case '-':
  //
  // here we check for POSIX paths as attributes to a POSIX switch.
  //
...

seemingly absolute POSIX paths in single-letter options get expanded by
msys.dll unless they contain '=' or ';'.

So a quick and very dirty fix is to use '-L/;*evil/'. (Using an equal sign
works only when it is before a comma, so in the above example, /=*green/
would still be converted to a DOS-style path.)

The -L mangling can be done by the script, just before the parameter is
passed to the executable.  This version does not modify the body of the
tests and is active on MinGW only.

Commit-message-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Author: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/annotate-tests.sh