diff --git a/rust/hg-core/src/dirstate_tree/on_disk.rs b/rust/hg-core/src/dirstate_tree/on_disk.rs --- a/rust/hg-core/src/dirstate_tree/on_disk.rs +++ b/rust/hg-core/src/dirstate_tree/on_disk.rs @@ -15,7 +15,7 @@ use format_bytes::format_bytes; use std::borrow::Cow; use std::convert::{TryFrom, TryInto}; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use std::time::{SystemTime, UNIX_EPOCH}; /// Added at the start of `.hg/dirstate` when the "v2" format is used. /// This a redundant sanity check more than an actual "magic number" since @@ -462,18 +462,6 @@ } } -impl From<&'_ Timestamp> for SystemTime { - fn from(timestamp: &'_ Timestamp) -> Self { - let secs = timestamp.seconds.get(); - let nanos = timestamp.nanoseconds.get(); - if secs >= 0 { - UNIX_EPOCH + Duration::new(secs as u64, nanos) - } else { - UNIX_EPOCH - Duration::new((-secs) as u64, nanos) - } - } -} - fn read_hg_path( on_disk: &[u8], slice: PathSlice, diff --git a/rust/hg-core/src/dirstate_tree/status.rs b/rust/hg-core/src/dirstate_tree/status.rs --- a/rust/hg-core/src/dirstate_tree/status.rs +++ b/rust/hg-core/src/dirstate_tree/status.rs @@ -199,7 +199,8 @@ // directory eligible for `read_dir` caching. if let Some(meta) = directory_metadata { if let Ok(current_mtime) = meta.modified() { - if current_mtime == cached_mtime.into() { + let current_mtime = Timestamp::from(current_mtime); + if current_mtime == *cached_mtime { // The mtime of that directory has not changed // since then, which means that the results of // `read_dir` should also be unchanged.