504 .entry()? |
504 .entry()? |
505 .expect("handle_normal_file called with entry-less node"); |
505 .expect("handle_normal_file called with entry-less node"); |
506 let hg_path = &dirstate_node.full_path_borrowed(self.dmap.on_disk)?; |
506 let hg_path = &dirstate_node.full_path_borrowed(self.dmap.on_disk)?; |
507 let mode_changed = |
507 let mode_changed = |
508 || self.options.check_exec && entry.mode_changed(fs_metadata); |
508 || self.options.check_exec && entry.mode_changed(fs_metadata); |
509 let size_changed = entry.size != truncate_u64(fs_metadata.len()); |
509 let size = entry.size(); |
510 if entry.size >= 0 |
510 let size_changed = size != truncate_u64(fs_metadata.len()); |
511 && size_changed |
511 if size >= 0 && size_changed && fs_metadata.file_type().is_symlink() { |
512 && fs_metadata.file_type().is_symlink() |
|
513 { |
|
514 // issue6456: Size returned may be longer due to encryption |
512 // issue6456: Size returned may be longer due to encryption |
515 // on EXT-4 fscrypt. TODO maybe only do it on EXT4? |
513 // on EXT-4 fscrypt. TODO maybe only do it on EXT4? |
516 self.outcome |
514 self.outcome |
517 .lock() |
515 .lock() |
518 .unwrap() |
516 .unwrap() |
519 .unsure |
517 .unsure |
520 .push(hg_path.detach_from_tree()) |
518 .push(hg_path.detach_from_tree()) |
521 } else if dirstate_node.has_copy_source() |
519 } else if dirstate_node.has_copy_source() |
522 || entry.is_from_other_parent() |
520 || entry.is_from_other_parent() |
523 || (entry.size >= 0 && (size_changed || mode_changed())) |
521 || (size >= 0 && (size_changed || mode_changed())) |
524 { |
522 { |
525 self.outcome |
523 self.outcome |
526 .lock() |
524 .lock() |
527 .unwrap() |
525 .unwrap() |
528 .modified |
526 .modified |
529 .push(hg_path.detach_from_tree()) |
527 .push(hg_path.detach_from_tree()) |
530 } else { |
528 } else { |
531 let mtime = mtime_seconds(fs_metadata); |
529 let mtime = mtime_seconds(fs_metadata); |
532 if truncate_i64(mtime) != entry.mtime |
530 if truncate_i64(mtime) != entry.mtime() |
533 || mtime == self.options.last_normal_time |
531 || mtime == self.options.last_normal_time |
534 { |
532 { |
535 self.outcome |
533 self.outcome |
536 .lock() |
534 .lock() |
537 .unwrap() |
535 .unwrap() |