Re: [PATCH 11/14] t3032-*.sh: Pass the -b (--binary) option to sed on cygwin
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Dec 15, 2010, 09:30 UTC
- Message-ID
- <4D088AB6.5090501@sunshineco.com>
- In-Reply-To
- <4D087AC7.2090705@viscovery.net>
On 12/15/2010 3:22 AM, Johannes Sixt wrote:
Show 33 quoted lines
> Am 12/15/2010 0:32, schrieb Eric Sunshine: >> On 12/14/2010 2:24 PM, Junio C Hamano wrote: >>> Ramsay Jones<ramsay@ramsay1.demon.co.uk> writes: >>>> The test using the conflict_hunks helper function (test 9) fails >>>> on cygwin, since sed (by default) throws away the CR from CRLF >>>> line endings. This behaviour is undesirable, since the validation >>>> code expects the CRLF line-ending to be present. In order to fix >>>> the problem we pass the -b (--binary) option to sed, using the >>>> SED_OPTIONS variable. We use the SED_STRIPS_CR prerequisite in the >>>> conditional initialisation of SED_OPTIONS. >>>> >>>> Signed-off-by: Ramsay Jones<ramsay@ramsay1.demon.co.uk> >>>> --- >>>> >>>> Note that this test does not fail on MinGW, but I don't >>>> really know why, given commit ca02ad3... ahem ;-) >>> >>> Ahem, indeed. Why? >> >> t3032 does indeed fail on MinGW, and was fixed in the msysgit port by [1], >> but was subsequently "lost" when msysgit was rebased onto junio/next [2] >> which did not have that test. Consequently, the fix never made it into the >> mainline git source. > > Sorry, but on MinGW, I only need the GREP_OPTIONS part of that fix, but > not the SED_OPTIONS. It's also mysterious for me. > > OTOH, the fix in ca02ad3 that applies to t6038, does not work for me as is > because my sed does not understand -b; it needs --nocr. Maybe it is the > sed version that makes the difference? > > D:\Src\mingw-git\t>sed --version > GNU sed version 3.02
Failure of t3032 was reported by Pat Thoyts [1] when preparing for the v1.7.3 release. The problem was diagnosed and patched via [2] under the standard msysgit netinstall [3] environment. From commit message [2], GREP_OPTIONS and SED_OPTIONS were applied to resolve distinct cases of line-terminator "corruption" (t3032.4-t3032.8 and t3032.9, respectively) within that environment at the time the patch was prepared.
Your tool versions may indeed not be compatible with those of the netinstall environment [3]:
$ sed --version GNU sed version 4.2.1
Unfortunately, the old --nocr is not recognized by modern GNU sed:
$ sed --nocr sed: unrecognized option `--nocr'
[1]: http://groups.google.com/group/msysgit/browse_thread/thread/70110298ae72caea/a39b121bb0feccf4?lnk=gst&q=t3032#a39b121bb0feccf4 [2]: http://groups.google.com/group/msysgit/browse_thread/thread/587d32ee034b0cbe/dca93dc6ad755012#dca93dc6ad755012 [3]: http://code.google.com/p/msysgit/downloads/list [msysGit-netinstall-1.7.3.1-preview20101002.exe]
-- ES