185 dirstate_parents: LazyCell::new(Self::read_dirstate_parents), |
185 dirstate_parents: LazyCell::new(Self::read_dirstate_parents), |
186 dirstate_data_file_uuid: LazyCell::new( |
186 dirstate_data_file_uuid: LazyCell::new( |
187 Self::read_dirstate_data_file_uuid, |
187 Self::read_dirstate_data_file_uuid, |
188 ), |
188 ), |
189 dirstate_map: LazyCell::new(Self::new_dirstate_map), |
189 dirstate_map: LazyCell::new(Self::new_dirstate_map), |
190 changelog: LazyCell::new(Changelog::open), |
190 changelog: LazyCell::new(Self::new_changelog), |
191 manifestlog: LazyCell::new(Manifestlog::open), |
191 manifestlog: LazyCell::new(Self::new_manifestlog), |
192 }; |
192 }; |
193 |
193 |
194 requirements::check(&repo)?; |
194 requirements::check(&repo)?; |
195 |
195 |
196 Ok(repo) |
196 Ok(repo) |
342 &self, |
342 &self, |
343 ) -> Result<RefMut<OwningDirstateMap>, DirstateError> { |
343 ) -> Result<RefMut<OwningDirstateMap>, DirstateError> { |
344 self.dirstate_map.get_mut_or_init(self) |
344 self.dirstate_map.get_mut_or_init(self) |
345 } |
345 } |
346 |
346 |
|
347 fn new_changelog(&self) -> Result<Changelog, HgError> { |
|
348 let use_nodemap = self |
|
349 .requirements |
|
350 .contains(requirements::NODEMAP_REQUIREMENT); |
|
351 Changelog::open(&self.store_vfs(), use_nodemap) |
|
352 } |
|
353 |
347 pub fn changelog(&self) -> Result<Ref<Changelog>, HgError> { |
354 pub fn changelog(&self) -> Result<Ref<Changelog>, HgError> { |
348 self.changelog.get_or_init(self) |
355 self.changelog.get_or_init(self) |
349 } |
356 } |
350 |
357 |
351 pub fn changelog_mut(&self) -> Result<RefMut<Changelog>, HgError> { |
358 pub fn changelog_mut(&self) -> Result<RefMut<Changelog>, HgError> { |
352 self.changelog.get_mut_or_init(self) |
359 self.changelog.get_mut_or_init(self) |
|
360 } |
|
361 |
|
362 fn new_manifestlog(&self) -> Result<Manifestlog, HgError> { |
|
363 let use_nodemap = self |
|
364 .requirements |
|
365 .contains(requirements::NODEMAP_REQUIREMENT); |
|
366 Manifestlog::open(&self.store_vfs(), use_nodemap) |
353 } |
367 } |
354 |
368 |
355 pub fn manifestlog(&self) -> Result<Ref<Manifestlog>, HgError> { |
369 pub fn manifestlog(&self) -> Result<Ref<Manifestlog>, HgError> { |
356 self.manifestlog.get_or_init(self) |
370 self.manifestlog.get_or_init(self) |
357 } |
371 } |