Skip to content
  • Karsten Blees's avatar
    t800[12]: work around MSys limitation · e8d08871
    Karsten Blees authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    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: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Author: Stepan Kasal <kasal@ucw.cz>
    Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarStepan Kasal <kasal@ucw.cz>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    e8d08871