Re: What's cooking extra
- From
Clemens Buchacher <drizzd@aon.at>
- Date
- May 25, 2010, 08:33 UTC
- Message-ID
- <20100525083319.GA588@localhost>
- In-Reply-To
- <246B0C3F-EBD3-41EC-B0FD-300BD1DBF43E@gmail.com>
On Tue, May 25, 2010 at 08:41:14AM +0200, Eyvind Bernhardsen wrote:
Show 12 quoted lines
> On 25. mai 2010, at 00.11, Clemens Buchacher wrote: > > > And once we normalized the file to LF, why don't we also checkout > > that version, or at least mark it as dirty in the index, so a reset > > --hard will fix it up? > > I dunno. Won't it be even more confusing that the file is still > dirty after you add it? The problem with converting it in the > working directory when you add is that it loses information: if > you didnt' want that file to be converted, there's no way to > revert (this is very bad if it's a file that contained a mix of > CRLF and LF).
I was trying to illustrate this with a test script, but after playing with this some more, I noticed that this is not a problem with your changes, since I can reproduce with git v1.7.0.5:
#!/bin/sh
cd $(mktemp -d) git init git config core.autocrlf input echo -n 'hi\r\nbye\r\n' > file git add file git commit -m initial
# no output git diff --name-status
sleep 1 touch file # file dirty git diff --name-status # at this point, reset --hard would convert 'file' to LF in the # work tree
git update-index file # no output git diff --name-status
The same behavior can be observed with the 'eol=lf' attribute, before and after normalizing the file.
Regards, Clemens
--- $ sh -x testcrlf2.sh + set -e + mktemp -d + cd /tmp/tmp.Smnx0U7IT1 + git init Initialized empty Git repository in /tmp/tmp.Smnx0U7IT1/.git/ + git config core.autocrlf input + echo -n hi\r\nbye\r\n + git add file warning: CRLF will be replaced by LF in file. + git commit -m initial [master (root-commit) d3be96f] initial warning: CRLF will be replaced by LF in file. 1 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 file + git diff --name-status + sleep 1 + touch file + git diff --name-status M file + git update-index file warning: CRLF will be replaced by LF in file. + git diff --name-status