changeset 49141:704e993e8ee9

rust-nodemap-docket: make unaware of `Repo` Differential Revision: https://phab.mercurial-scm.org/D12545
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 31 Mar 2022 22:54:33 -0700
parents 07d8d144c222
children bfc117647c71
files rust/hg-core/src/revlog/nodemap_docket.rs rust/hg-core/src/revlog/revlog.rs
diffstat 2 files changed, 6 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/rust/hg-core/src/revlog/nodemap_docket.rs	Thu Mar 31 22:59:19 2022 -0700
+++ b/rust/hg-core/src/revlog/nodemap_docket.rs	Thu Mar 31 22:54:33 2022 -0700
@@ -3,8 +3,8 @@
 use memmap2::Mmap;
 use std::path::{Path, PathBuf};
 
-use crate::repo::Repo;
 use crate::utils::strip_suffix;
+use crate::vfs::Vfs;
 
 const ONDISK_VERSION: u8 = 1;
 
@@ -34,12 +34,12 @@
     /// * The docket file points to a missing (likely deleted) data file (this
     ///   can happen in a rare race condition).
     pub fn read_from_file(
-        repo: &Repo,
+        store_vfs: &Vfs,
         index_path: &Path,
     ) -> Result<Option<(Self, Mmap)>, HgError> {
         let docket_path = index_path.with_extension("n");
         let docket_bytes = if let Some(bytes) =
-            repo.store_vfs().read(&docket_path).io_not_found_as_none()?
+            store_vfs.read(&docket_path).io_not_found_as_none()?
         {
             bytes
         } else {
@@ -75,10 +75,8 @@
         let data_path = rawdata_path(&docket_path, uid);
         // TODO: use `vfs.read()` here when the `persistent-nodemap.mmap`
         // config is false?
-        if let Some(mmap) = repo
-            .store_vfs()
-            .mmap_open(&data_path)
-            .io_not_found_as_none()?
+        if let Some(mmap) =
+            store_vfs.mmap_open(&data_path).io_not_found_as_none()?
         {
             if mmap.len() >= data_length {
                 Ok(Some((docket, mmap)))
--- a/rust/hg-core/src/revlog/revlog.rs	Thu Mar 31 22:59:19 2022 -0700
+++ b/rust/hg-core/src/revlog/revlog.rs	Thu Mar 31 22:54:33 2022 -0700
@@ -118,7 +118,7 @@
             // If .hg/requires does not opt it, don’t try to open a nodemap
             None
         } else {
-            NodeMapDocket::read_from_file(repo, index_path)?.map(
+            NodeMapDocket::read_from_file(&repo.store_vfs(), index_path)?.map(
                 |(docket, data)| {
                     nodemap::NodeTree::load_bytes(
                         Box::new(data),