On Aug 7, 2007, at 11:44 PM, Linus Torvalds wrote:
On Tue, 7 Aug 2007, Steffen Prohaska wrote:
Is there any chance that patches would be accepted that try to
do so? Even if they add "b" to fopen and O_BINARY to open, which
both are useless on Unix?
I certainly don't think it would be wrong to add O_BINARY to the
open()
parameters (and "b" to fopen() and friends), if it makes a difference.
Add a
#ifndef O_BINARY
#define O_BINARY 0
#endif
and it should be harmless anywhere else.
So if you're willing to test, and extend on this, maybe something like
this gets you started (I think the main issue will be the object
files,
no?)
I took a more radical approach and used a small script to add
"b" to all calls to fopen and O_BINARY to all calls to open.
O_BINARY is provided by the Makefile if not on cygwin. I don't
think we need to differentiate between binary and textfiles.
I'll send the patch shortly.
I started to run the tests on cygwin in textmode. I chose the
following setup.
- cygwin is set to binmode, that is cygwin's git is working.
- I used git to cloned git to a Windows directory, say c:\git
and compiled there. The Windows directory is mounted in binmode.
- For testing I 'mount' this directory in text mode, in my example
cd /
mkdir git-textmode
mount --text 'c:\git' git-textmode
This setup allows you to work with git and test in the same
working directory in textmode. You should double check in which
of your directories you commit. Right now, committing in the
textmode directory is only for the brave ones.
'git read-tree HEAD' in the binmode directory should help if
you executed the wrong git in the wrong directory and your index
got corrupted.
The first problems I ran into are pre-computed sha1's for the
test cases. I started to add d2u to the test scripts to generate
files with unix style line endings even if cygwin is in textmode.
This is needed to match the expected results that come with
the test files. I'll send the first changes in a second patch.
The patch is only for illustrating the problem. It's not thought
to be applied.
The tests are running. t0000-basic and t0010-racy-git pass. I'll
send a testlog later. It's running inside a virtual machine on a
laptop, so it may take some more time.
I suspect the tests will report a lot of errors. At least all
tests that compare 'echo' output with precomputed sha1's or
expected results that come with the tests should fail. I haven't
fully understood the details of line conversion of cygwin. Some
work may be needed to eliminate false fails from the tests, e.g. by
adding 'd2u', and find the real problems.
I have no time to continue today.
Steffen
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html