rust/hg-core/src/operations/list_tracked_files.rs
changeset 49980 95ffa065204e
parent 49937 750409505286
child 49985 e57f76c28f7b
--- a/rust/hg-core/src/operations/list_tracked_files.rs	Wed Jan 11 17:27:19 2023 +0100
+++ b/rust/hg-core/src/operations/list_tracked_files.rs	Wed Jan 11 16:29:29 2023 +0100
@@ -5,64 +5,11 @@
 // This software may be used and distributed according to the terms of the
 // GNU General Public License version 2 or any later version.
 
-use crate::dirstate::parsers::parse_dirstate_entries;
-use crate::dirstate_tree::on_disk::{for_each_tracked_path, read_docket};
 use crate::errors::HgError;
 use crate::repo::Repo;
 use crate::revlog::manifest::Manifest;
 use crate::revlog::RevlogError;
 use crate::utils::hg_path::HgPath;
-use crate::DirstateError;
-use rayon::prelude::*;
-
-/// List files under Mercurial control in the working directory
-/// by reading the dirstate
-pub struct Dirstate {
-    /// The `dirstate` content.
-    content: Vec<u8>,
-    v2_metadata: Option<Vec<u8>>,
-}
-
-impl Dirstate {
-    pub fn new(repo: &Repo) -> Result<Self, HgError> {
-        let mut content = repo.hg_vfs().read("dirstate")?;
-        let v2_metadata = if repo.has_dirstate_v2() {
-            let docket = read_docket(&content)?;
-            let meta = docket.tree_metadata().to_vec();
-            content = repo.hg_vfs().read(docket.data_filename())?;
-            Some(meta)
-        } else {
-            None
-        };
-        Ok(Self {
-            content,
-            v2_metadata,
-        })
-    }
-
-    pub fn tracked_files(&self) -> Result<Vec<&HgPath>, DirstateError> {
-        let mut files = Vec::new();
-        if !self.content.is_empty() {
-            if let Some(meta) = &self.v2_metadata {
-                for_each_tracked_path(&self.content, meta, |path| {
-                    files.push(path)
-                })?
-            } else {
-                let _parents = parse_dirstate_entries(
-                    &self.content,
-                    |path, entry, _copy_source| {
-                        if entry.tracked() {
-                            files.push(path)
-                        }
-                        Ok(())
-                    },
-                )?;
-            }
-        }
-        files.par_sort_unstable();
-        Ok(files)
-    }
-}
 
 /// List files under Mercurial control at a given revision.
 pub fn list_rev_tracked_files(