@@ 94,7 94,7 @@ int parse_dirstate(const char* hg_path,
PRINT("[%zu] status: %c\n", i, status);
PRINT("[%zu] mode: %.3o\n", i, mode);
- PRINT("[%zu] size: %u\n", i, size);
+ PRINT("[%zu] size: %lld\n", i, (long long)size);
PRINT("[%zu] mtime: %lld\n", i, (long long)mtime);
PRINT("[%zu] length: %u\n", i, length);
@@ 109,10 109,14 @@ int parse_dirstate(const char* hg_path,
if (lstat(filepath, &filestat)) return -2;
if (((mode ^ filestat.st_mode) & 0111 & ~u) && ((mode & S_IFLNK) != S_IFLNK)) {
- PRINT(("[%zu] filestat.st_mode: %.3o\n", i, filestat.st_mode));
+ PRINT("[%zu] filestat.st_mode: %.3o\n", i, filestat.st_mode);
dirty("above file's mode changed");
break;
- } else if (mtime != filestat.st_mtime && size != filestat.st_size) {
+ } else if (mode && mtime != filestat.st_mtime && size != filestat.st_size) {
+ /* check that mode != 000 since after updating, certain files are not updated in the
+ dirstate? */
+ PRINT("[%zu] filestate.st_mtime: %lld\n", i, (long long)filestat.st_mtime);
+ PRINT("[%zu] filestate.st_size: %lld\n", i, filestat.st_size);
dirty("above file's mtime and size both differ");
break;
}