Mercurial > public > mercurial-scm > hg
comparison rust/hg-core/src/dirstate_tree/status.rs @ 48022:f2a9db29cb2d
rust: Make the fields of DirstateEntry private
This is a first step toward making its internal structure equivalent to
Python?s DirstateItem.
Differential Revision: https://phab.mercurial-scm.org/D11461
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Fri, 17 Sep 2021 13:33:45 +0200 |
parents | 94e38822d395 |
children | 1b2ee68e85f9 |
comparison
equal
deleted
inserted
replaced
48021:627cd8f33db0 | 48022:f2a9db29cb2d |
---|---|
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() |