Show More
@@ -704,6 +704,16 b' coreconfigitem(' | |||||
704 | ) |
|
704 | ) | |
705 | coreconfigitem( |
|
705 | coreconfigitem( | |
706 | b'devel', |
|
706 | b'devel', | |
|
707 | b'sync.dirstate.pre-read-file', | |||
|
708 | default=None, | |||
|
709 | ) | |||
|
710 | coreconfigitem( | |||
|
711 | b'devel', | |||
|
712 | b'sync.dirstate.pre-read-file-timeout', | |||
|
713 | default=2, | |||
|
714 | ) | |||
|
715 | coreconfigitem( | |||
|
716 | b'devel', | |||
707 | b'strip-obsmarkers', |
|
717 | b'strip-obsmarkers', | |
708 | default=True, |
|
718 | default=True, | |
709 | ) |
|
719 | ) |
@@ -10,6 +10,7 b' from . import (' | |||||
10 | error, |
|
10 | error, | |
11 | pathutil, |
|
11 | pathutil, | |
12 | policy, |
|
12 | policy, | |
|
13 | testing, | |||
13 | txnutil, |
|
14 | txnutil, | |
14 | util, |
|
15 | util, | |
15 | ) |
|
16 | ) | |
@@ -276,7 +277,9 b' class dirstatemap(_dirstatemapcommon):' | |||||
276 | self._opener.join(self._filename) |
|
277 | self._opener.join(self._filename) | |
277 | ) |
|
278 | ) | |
278 |
|
279 | |||
|
280 | testing.wait_on_cfg(self._ui, b'dirstate.pre-read-file') | |||
279 | if self._use_dirstate_v2: |
|
281 | if self._use_dirstate_v2: | |
|
282 | ||||
280 | if not self.docket.uuid: |
|
283 | if not self.docket.uuid: | |
281 | return |
|
284 | return | |
282 | st = self._opener.read(self.docket.data_filename()) |
|
285 | st = self._opener.read(self.docket.data_filename()) | |
@@ -541,6 +544,7 b' if rustmod is not None:' | |||||
541 | self._opener.join(self._filename) |
|
544 | self._opener.join(self._filename) | |
542 | ) |
|
545 | ) | |
543 |
|
546 | |||
|
547 | testing.wait_on_cfg(self._ui, b'dirstate.pre-read-file') | |||
544 | if self._use_dirstate_v2: |
|
548 | if self._use_dirstate_v2: | |
545 | if self.docket.uuid: |
|
549 | if self.docket.uuid: | |
546 | # TODO: use mmap when possible |
|
550 | # TODO: use mmap when possible |
@@ -10,6 +10,7 b' use crate::lock::{try_with_lock_no_wait,' | |||||
10 | use crate::manifest::{Manifest, Manifestlog}; |
|
10 | use crate::manifest::{Manifest, Manifestlog}; | |
11 | use crate::revlog::filelog::Filelog; |
|
11 | use crate::revlog::filelog::Filelog; | |
12 | use crate::revlog::revlog::RevlogError; |
|
12 | use crate::revlog::revlog::RevlogError; | |
|
13 | use crate::utils::debug::debug_wait_for_file_or_print; | |||
13 | use crate::utils::files::get_path_from_bytes; |
|
14 | use crate::utils::files::get_path_from_bytes; | |
14 | use crate::utils::hg_path::HgPath; |
|
15 | use crate::utils::hg_path::HgPath; | |
15 | use crate::utils::SliceExt; |
|
16 | use crate::utils::SliceExt; | |
@@ -308,6 +309,10 b' impl Repo {' | |||||
308 | if self.has_dirstate_v2() { |
|
309 | if self.has_dirstate_v2() { | |
309 | self.read_docket_and_data_file() |
|
310 | self.read_docket_and_data_file() | |
310 | } else { |
|
311 | } else { | |
|
312 | debug_wait_for_file_or_print( | |||
|
313 | self.config(), | |||
|
314 | "dirstate.pre-read-file", | |||
|
315 | ); | |||
311 | let dirstate_file_contents = self.dirstate_file_contents()?; |
|
316 | let dirstate_file_contents = self.dirstate_file_contents()?; | |
312 | if dirstate_file_contents.is_empty() { |
|
317 | if dirstate_file_contents.is_empty() { | |
313 | self.dirstate_parents.set(DirstateParents::NULL); |
|
318 | self.dirstate_parents.set(DirstateParents::NULL); | |
@@ -324,6 +329,7 b' impl Repo {' | |||||
324 | fn read_docket_and_data_file( |
|
329 | fn read_docket_and_data_file( | |
325 | &self, |
|
330 | &self, | |
326 | ) -> Result<OwningDirstateMap, DirstateError> { |
|
331 | ) -> Result<OwningDirstateMap, DirstateError> { | |
|
332 | debug_wait_for_file_or_print(self.config(), "dirstate.pre-read-file"); | |||
327 | let dirstate_file_contents = self.dirstate_file_contents()?; |
|
333 | let dirstate_file_contents = self.dirstate_file_contents()?; | |
328 | if dirstate_file_contents.is_empty() { |
|
334 | if dirstate_file_contents.is_empty() { | |
329 | self.dirstate_parents.set(DirstateParents::NULL); |
|
335 | self.dirstate_parents.set(DirstateParents::NULL); |
General Comments 0
You need to be logged in to leave comments.
Login now