summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2005-12-26 21:31:42 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-12-27 02:33:27 (GMT)
commit975b31dc6e12fba8f7b067ddbe32230995e05400 (patch)
tree41899493fc7a44c9a601c621e4857ceaee13eb88 /diff.c
parentc97451ce0985e7fc6515cde84a9ad527727b69ea (diff)
downloadgit-975b31dc6e12fba8f7b067ddbe32230995e05400.zip
git-975b31dc6e12fba8f7b067ddbe32230995e05400.tar.gz
git-975b31dc6e12fba8f7b067ddbe32230995e05400.tar.bz2
Handle symlinks graciously
This patch converts a stat() to an lstat() call, thereby fixing the case when the date of a symlink was not the same as the one recorded in the index. The included test case demonstrates this. This is for the case that the symlink points to a non-existing file. If the file exists, worse things than just an error message happen. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/diff.c b/diff.c
index bfc864d..66057e5 100644
--- a/diff.c
+++ b/diff.c
@@ -650,7 +650,7 @@ static void diff_fill_sha1_info(struct diff_filespec *one)
if (DIFF_FILE_VALID(one)) {
if (!one->sha1_valid) {
struct stat st;
- if (stat(one->path, &st) < 0)
+ if (lstat(one->path, &st) < 0)
die("stat %s", one->path);
if (index_path(one->sha1, one->path, &st, 0))
die("cannot hash %s\n", one->path);