aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-01-21 00:44:50 -0800
committerJunio C Hamano <gitster@pobox.com>2008-01-22 21:26:40 -0800
commit6d91da6d3c170d026f2d7f79bbd7b657a6908cc8 (patch)
treeadb7b336b0e7b0b06269fa250491ef5b17c1dbf2
parent077c48df8a72b046a2f562fedffa1c3d3a73a4e2 (diff)
downloadgit-6d91da6d3c170d026f2d7f79bbd7b657a6908cc8.tar.gz
git-6d91da6d3c170d026f2d7f79bbd7b657a6908cc8.tar.xz
read-cache.c: introduce is_racy_timestamp() helper
This moves a common boolean expression into a helper function, and makes the comparison between filesystem timestamp and index timestamp done in the function in line with the other places. st.st_mtime should be casted to (unsigned int) when compared to an index timestamp ce_mtime. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--read-cache.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/read-cache.c b/read-cache.c
index 8f5d02afa..07abd5d7e 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -181,6 +181,12 @@ static int ce_match_stat_basic(struct cache_entry *ce, struct stat *st)
return changed;
}
+static int is_racy_timestamp(struct index_state *istate, struct cache_entry *ce)
+{
+ return (istate->timestamp &&
+ ((unsigned int)istate->timestamp) <= ce->ce_mtime);
+}
+
int ie_match_stat(struct index_state *istate,
struct cache_entry *ce, struct stat *st,
unsigned int options)
@@ -214,9 +220,7 @@ int ie_match_stat(struct index_state *istate,
* whose mtime are the same as the index file timestamp more
* carefully than others.
*/
- if (!changed &&
- istate->timestamp &&
- istate->timestamp <= ce->ce_mtime) {
+ if (!changed && is_racy_timestamp(istate, ce)) {
if (assume_racy_is_modified)
changed |= DATA_CHANGED;
else
@@ -1233,8 +1237,7 @@ int write_index(struct index_state *istate, int newfd)
struct cache_entry *ce = cache[i];
if (ce->ce_flags & CE_REMOVE)
continue;
- if (istate->timestamp &&
- istate->timestamp <= ce->ce_mtime)
+ if (is_racy_timestamp(istate, ce))
ce_smudge_racily_clean_entry(ce);
if (ce_write_entry(&c, newfd, ce) < 0)
return -1;