Fix racy-git handling in git-write-tree.
commit59f8c189a5d582d5eef28ca4021d04087dff2eff
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Aug 2007 17:18:54 +0000 (23 10:18 -0700)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 3 Sep 2007 22:48:53 +0000 (3 23:48 +0100)
treebff6aed863fe0569485f3d0f358e935eacd95bd9
parentb9dcb2cbe55afa21af7eed9f49e319b183954748
Fix racy-git handling in git-write-tree.

After git-write-tree finishes computing the tree, it updates the
index so that later operations can take advantage of fully
populated cache tree.

However, anybody writing the index file has to mark the entries
that are racily clean.  For each entry whose cached lstat(3)
data in the index exactly matches what is obtained from the
filesystem, if the timestamp on the index file was the same or
older than the modification timestamp of the file, the blob
contents and the work tree file, after convert_to_git(), need to
be compared, and if they are different, its index entry needs to
be marked not to match the lstat(3) data from the filesystem.

In order for this to work, convert_to_git() needs to work
correctly, which in turn means you need to read the config file
to get the settings of core.crlf and friends.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0023-crlf-am.sh [new file with mode: 0755]