equal
deleted
inserted
replaced
|
1 use crate::repo::Repo; |
1 use crate::revlog::revlog::{Revlog, RevlogError}; |
2 use crate::revlog::revlog::{Revlog, RevlogError}; |
2 use crate::revlog::NodePrefixRef; |
3 use crate::revlog::NodePrefixRef; |
3 use crate::revlog::Revision; |
4 use crate::revlog::Revision; |
4 use crate::utils::hg_path::HgPath; |
5 use crate::utils::hg_path::HgPath; |
5 use std::path::Path; |
|
6 |
6 |
7 /// A specialized `Revlog` to work with `manifest` data format. |
7 /// A specialized `Revlog` to work with `manifest` data format. |
8 pub struct Manifest { |
8 pub struct Manifest { |
9 /// The generic `revlog` format. |
9 /// The generic `revlog` format. |
10 revlog: Revlog, |
10 revlog: Revlog, |
11 } |
11 } |
12 |
12 |
13 impl Manifest { |
13 impl Manifest { |
14 /// Open the `manifest` of a repository given by its root. |
14 /// Open the `manifest` of a repository given by its root. |
15 pub fn open(root: &Path) -> Result<Self, RevlogError> { |
15 pub fn open(repo: &Repo) -> Result<Self, RevlogError> { |
16 let index_file = root.join(".hg/store/00manifest.i"); |
16 let revlog = Revlog::open(repo, "00manifest.i", None)?; |
17 let revlog = Revlog::open(&index_file, None)?; |
|
18 Ok(Self { revlog }) |
17 Ok(Self { revlog }) |
19 } |
18 } |
20 |
19 |
21 /// Return the `ManifestEntry` of a given node id. |
20 /// Return the `ManifestEntry` of a given node id. |
22 pub fn get_node( |
21 pub fn get_node( |