##// END OF EJS Templates
rust-dirstatemap: add `set_cached_mtime` helper method...
Raphaël Gomès -
r50019:464747fa default
parent child Browse files
Show More
@@ -823,6 +823,30 b" impl<'on_disk> DirstateMap<'on_disk> {"
823 Ok(())
823 Ok(())
824 }
824 }
825
825
826 /// Sets the cached mtime for the (potential) folder at `path`.
827 pub(super) fn set_cached_mtime(
828 &mut self,
829 path: &HgPath,
830 mtime: TruncatedTimestamp,
831 ) -> Result<(), DirstateV2ParseError> {
832 let node = match DirstateMap::get_node_mut(
833 self.on_disk,
834 &mut self.unreachable_bytes,
835 &mut self.root,
836 path,
837 )? {
838 Some(node) => node,
839 None => return Ok(()),
840 };
841 match &node.data {
842 NodeData::Entry(_) => {} // Don’t overwrite an entry
843 NodeData::CachedDirectory { .. } | NodeData::None => {
844 node.data = NodeData::CachedDirectory { mtime }
845 }
846 }
847 Ok(())
848 }
849
826 fn iter_nodes<'tree>(
850 fn iter_nodes<'tree>(
827 &'tree self,
851 &'tree self,
828 ) -> impl Iterator<
852 ) -> impl Iterator<
@@ -4,7 +4,6 b' use crate::dirstate::status::StatusPath;'
4 use crate::dirstate_tree::dirstate_map::BorrowedPath;
4 use crate::dirstate_tree::dirstate_map::BorrowedPath;
5 use crate::dirstate_tree::dirstate_map::ChildNodesRef;
5 use crate::dirstate_tree::dirstate_map::ChildNodesRef;
6 use crate::dirstate_tree::dirstate_map::DirstateMap;
6 use crate::dirstate_tree::dirstate_map::DirstateMap;
7 use crate::dirstate_tree::dirstate_map::NodeData;
8 use crate::dirstate_tree::dirstate_map::NodeRef;
7 use crate::dirstate_tree::dirstate_map::NodeRef;
9 use crate::dirstate_tree::on_disk::DirstateV2ParseError;
8 use crate::dirstate_tree::on_disk::DirstateV2ParseError;
10 use crate::matchers::get_ignore_function;
9 use crate::matchers::get_ignore_function;
@@ -143,13 +142,7 b" pub fn status<'dirstate>("
143 dmap.clear_cached_mtime(path)?;
142 dmap.clear_cached_mtime(path)?;
144 }
143 }
145 for (path, mtime) in &new_cachable {
144 for (path, mtime) in &new_cachable {
146 let node = dmap.get_or_insert(path)?;
145 dmap.set_cached_mtime(path, *mtime)?;
147 match &node.data {
148 NodeData::Entry(_) => {} // Don’t overwrite an entry
149 NodeData::CachedDirectory { .. } | NodeData::None => {
150 node.data = NodeData::CachedDirectory { mtime: *mtime }
151 }
152 }
153 }
146 }
154
147
155 Ok((outcome, warnings))
148 Ok((outcome, warnings))
General Comments 0
You need to be logged in to leave comments. Login now