7 use crate::errors::HgResultExt; |
7 use crate::errors::HgResultExt; |
8 use crate::errors::{HgError, IoResultExt}; |
8 use crate::errors::{HgError, IoResultExt}; |
9 use crate::lock::{try_with_lock_no_wait, LockError}; |
9 use crate::lock::{try_with_lock_no_wait, LockError}; |
10 use crate::manifest::{Manifest, Manifestlog}; |
10 use crate::manifest::{Manifest, Manifestlog}; |
11 use crate::requirements::{ |
11 use crate::requirements::{ |
12 CHANGELOGV2_REQUIREMENT, GENERALDELTA_REQUIREMENT, NODEMAP_REQUIREMENT, |
12 CHANGELOGV2_REQUIREMENT, DIRSTATE_TRACKED_HINT_V1, |
13 REVLOGV1_REQUIREMENT, REVLOGV2_REQUIREMENT, |
13 GENERALDELTA_REQUIREMENT, NODEMAP_REQUIREMENT, REVLOGV1_REQUIREMENT, |
|
14 REVLOGV2_REQUIREMENT, |
14 }; |
15 }; |
15 use crate::revlog::filelog::Filelog; |
16 use crate::revlog::filelog::Filelog; |
16 use crate::revlog::RevlogError; |
17 use crate::revlog::RevlogError; |
17 use crate::utils::debug::debug_wait_for_file_or_print; |
18 use crate::utils::debug::debug_wait_for_file_or_print; |
18 use crate::utils::files::get_path_from_bytes; |
19 use crate::utils::files::get_path_from_bytes; |
545 "force-new" => DirstateMapWriteMode::ForceNewDataFile, |
546 "force-new" => DirstateMapWriteMode::ForceNewDataFile, |
546 "force-append" => DirstateMapWriteMode::ForceAppend, |
547 "force-append" => DirstateMapWriteMode::ForceAppend, |
547 _ => DirstateMapWriteMode::Auto, |
548 _ => DirstateMapWriteMode::Auto, |
548 }; |
549 }; |
549 |
550 |
550 map.with_dmap_mut(|m| m.set_write_mode(write_mode)); |
551 let tracked_hint = |
|
552 self.requirements().contains(DIRSTATE_TRACKED_HINT_V1); |
|
553 |
|
554 map.with_dmap_mut(|m| { |
|
555 m.set_write_mode(write_mode); |
|
556 m.set_tracked_hint(tracked_hint); |
|
557 }); |
551 |
558 |
552 Ok(map) |
559 Ok(map) |
553 } |
560 } |
554 |
561 |
555 pub fn dirstate_map( |
562 pub fn dirstate_map( |