summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-08-15 21:38:07 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2006-08-15 21:38:07 -0700
commit42f774063db1442fc3815f596d263f90dcd8380b (patch)
tree5a959ca6469b90b9cf04623bb5b4c7d41fac5f74 /read-cache.c
parentDocumentation/technical/racy-git.txt (diff)
downloadtgif-42f774063db1442fc3815f596d263f90dcd8380b.tar.xz
Add check program "git-check-racy"
This will help counting the racily clean paths, but it should be useless for daily use. Do not even enable it in the makefile. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/read-cache.c b/read-cache.c
index ec4dd5ae6c..4d621ef444 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -169,9 +169,11 @@ static int ce_match_stat_basic(struct cache_entry *ce, struct stat *st)
return changed;
}
-int ce_match_stat(struct cache_entry *ce, struct stat *st, int ignore_valid)
+int ce_match_stat(struct cache_entry *ce, struct stat *st, int options)
{
unsigned int changed;
+ int ignore_valid = options & 01;
+ int assume_racy_is_modified = options & 02;
/*
* If it's marked as always valid in the index, it's
@@ -200,8 +202,12 @@ int ce_match_stat(struct cache_entry *ce, struct stat *st, int ignore_valid)
*/
if (!changed &&
index_file_timestamp &&
- index_file_timestamp <= ntohl(ce->ce_mtime.sec))
- changed |= ce_modified_check_fs(ce, st);
+ index_file_timestamp <= ntohl(ce->ce_mtime.sec)) {
+ if (assume_racy_is_modified)
+ changed |= DATA_CHANGED;
+ else
+ changed |= ce_modified_check_fs(ce, st);
+ }
return changed;
}