projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-diff-tree: don't use diffcore_pathspec()
[git.git]
/
read-cache.c
diff --git
a/read-cache.c
b/read-cache.c
index
b3eec84
..
34c040a
100644
(file)
--- a/
read-cache.c
+++ b/
read-cache.c
@@
-3,7
+3,6
@@
*
* Copyright (C) Linus Torvalds, 2005
*/
*
* Copyright (C) Linus Torvalds, 2005
*/
-#include <stdarg.h>
#include "cache.h"
struct cache_entry **active_cache = NULL;
#include "cache.h"
struct cache_entry **active_cache = NULL;
@@
-18,7
+17,7
@@
void fill_stat_cache_info(struct cache_entry *ce, struct stat *st)
{
ce->ce_ctime.sec = htonl(st->st_ctime);
ce->ce_mtime.sec = htonl(st->st_mtime);
{
ce->ce_ctime.sec = htonl(st->st_ctime);
ce->ce_mtime.sec = htonl(st->st_mtime);
-#ifdef NSEC
+#ifdef
USE_
NSEC
ce->ce_ctime.nsec = htonl(st->st_ctim.tv_nsec);
ce->ce_mtime.nsec = htonl(st->st_mtim.tv_nsec);
#endif
ce->ce_ctime.nsec = htonl(st->st_ctim.tv_nsec);
ce->ce_mtime.nsec = htonl(st->st_mtim.tv_nsec);
#endif
@@
-51,7
+50,7
@@
int ce_match_stat(struct cache_entry *ce, struct stat *st)
if (ce->ce_ctime.sec != htonl(st->st_ctime))
changed |= CTIME_CHANGED;
if (ce->ce_ctime.sec != htonl(st->st_ctime))
changed |= CTIME_CHANGED;
-#ifdef NSEC
+#ifdef
USE_
NSEC
/*
* nsec seems unreliable - not all filesystems support it, so
* as long as it is in the inode cache you get right nsec
/*
* nsec seems unreliable - not all filesystems support it, so
* as long as it is in the inode cache you get right nsec
@@
-66,9
+65,19
@@
int ce_match_stat(struct cache_entry *ce, struct stat *st)
if (ce->ce_uid != htonl(st->st_uid) ||
ce->ce_gid != htonl(st->st_gid))
changed |= OWNER_CHANGED;
if (ce->ce_uid != htonl(st->st_uid) ||
ce->ce_gid != htonl(st->st_gid))
changed |= OWNER_CHANGED;
- if (ce->ce_dev != htonl(st->st_dev) ||
- ce->ce_ino != htonl(st->st_ino))
+ if (ce->ce_ino != htonl(st->st_ino))
changed |= INODE_CHANGED;
changed |= INODE_CHANGED;
+
+#ifdef USE_STDEV
+ /*
+ * st_dev breaks on network filesystems where different
+ * clients will have different views of what "device"
+ * the filesystem is on
+ */
+ if (ce->ce_dev != htonl(st->st_dev))
+ changed |= INODE_CHANGED;
+#endif
+
if (ce->ce_size != htonl(st->st_size))
changed |= DATA_CHANGED;
return changed;
if (ce->ce_size != htonl(st->st_size))
changed |= DATA_CHANGED;
return changed;