equal
deleted
inserted
replaced
8 use crate::dirstate::parsers::parse_dirstate_entries; |
8 use crate::dirstate::parsers::parse_dirstate_entries; |
9 use crate::dirstate_tree::on_disk::{for_each_tracked_path, read_docket}; |
9 use crate::dirstate_tree::on_disk::{for_each_tracked_path, read_docket}; |
10 use crate::errors::HgError; |
10 use crate::errors::HgError; |
11 use crate::repo::Repo; |
11 use crate::repo::Repo; |
12 use crate::revlog::manifest::Manifest; |
12 use crate::revlog::manifest::Manifest; |
13 use crate::revlog::node::Node; |
|
14 use crate::revlog::revlog::RevlogError; |
13 use crate::revlog::revlog::RevlogError; |
15 use crate::utils::hg_path::HgPath; |
14 use crate::utils::hg_path::HgPath; |
16 use crate::DirstateError; |
15 use crate::DirstateError; |
17 use rayon::prelude::*; |
16 use rayon::prelude::*; |
18 |
17 |
69 pub fn list_rev_tracked_files( |
68 pub fn list_rev_tracked_files( |
70 repo: &Repo, |
69 repo: &Repo, |
71 revset: &str, |
70 revset: &str, |
72 ) -> Result<FilesForRev, RevlogError> { |
71 ) -> Result<FilesForRev, RevlogError> { |
73 let rev = crate::revset::resolve_single(revset, repo)?; |
72 let rev = crate::revset::resolve_single(revset, repo)?; |
74 let changelog = repo.changelog()?; |
73 Ok(FilesForRev(repo.manifest(rev)?)) |
75 let manifest = repo.manifestlog()?; |
|
76 let changelog_entry = changelog.get_rev(rev)?; |
|
77 let manifest_node = |
|
78 Node::from_hex_for_repo(&changelog_entry.manifest_node()?)?; |
|
79 let manifest_entry = manifest.get_node(manifest_node.into())?; |
|
80 Ok(FilesForRev(manifest_entry)) |
|
81 } |
74 } |
82 |
75 |
83 pub struct FilesForRev(Manifest); |
76 pub struct FilesForRev(Manifest); |
84 |
77 |
85 impl FilesForRev { |
78 impl FilesForRev { |