equal
deleted
inserted
replaced
216 Vfs { |
216 Vfs { |
217 base: &self.working_directory, |
217 base: &self.working_directory, |
218 } |
218 } |
219 } |
219 } |
220 |
220 |
|
221 pub fn has_dirstate_v2(&self) -> bool { |
|
222 self.requirements |
|
223 .contains(requirements::DIRSTATE_V2_REQUIREMENT) |
|
224 } |
|
225 |
221 pub fn dirstate_parents( |
226 pub fn dirstate_parents( |
222 &self, |
227 &self, |
223 ) -> Result<crate::dirstate::DirstateParents, HgError> { |
228 ) -> Result<crate::dirstate::DirstateParents, HgError> { |
224 let dirstate = self.hg_vfs().mmap_open("dirstate")?; |
229 let dirstate = self.hg_vfs().mmap_open("dirstate")?; |
225 let parents = |
230 if dirstate.is_empty() { |
226 crate::dirstate::parsers::parse_dirstate_parents(&dirstate)?; |
231 return Ok(crate::dirstate::DirstateParents::NULL); |
|
232 } |
|
233 let parents = if self.has_dirstate_v2() { |
|
234 crate::dirstate_tree::on_disk::parse_dirstate_parents(&dirstate)? |
|
235 } else { |
|
236 crate::dirstate::parsers::parse_dirstate_parents(&dirstate)? |
|
237 }; |
227 Ok(parents.clone()) |
238 Ok(parents.clone()) |
228 } |
239 } |
229 } |
240 } |
230 |
241 |
231 impl Vfs<'_> { |
242 impl Vfs<'_> { |