9 use super::path_with_basename::WithBasename; |
9 use super::path_with_basename::WithBasename; |
10 use crate::dirstate::parsers::pack_entry; |
10 use crate::dirstate::parsers::pack_entry; |
11 use crate::dirstate::parsers::packed_entry_size; |
11 use crate::dirstate::parsers::packed_entry_size; |
12 use crate::dirstate::parsers::parse_dirstate_entries; |
12 use crate::dirstate::parsers::parse_dirstate_entries; |
13 use crate::dirstate::parsers::Timestamp; |
13 use crate::dirstate::parsers::Timestamp; |
|
14 use crate::dirstate::MTIME_UNSET; |
14 use crate::dirstate::SIZE_FROM_OTHER_PARENT; |
15 use crate::dirstate::SIZE_FROM_OTHER_PARENT; |
15 use crate::dirstate::SIZE_NON_NORMAL; |
16 use crate::dirstate::SIZE_NON_NORMAL; |
|
17 use crate::dirstate::V1_RANGEMASK; |
16 use crate::matchers::Matcher; |
18 use crate::matchers::Matcher; |
17 use crate::utils::hg_path::{HgPath, HgPathBuf}; |
19 use crate::utils::hg_path::{HgPath, HgPathBuf}; |
18 use crate::CopyMapIter; |
20 use crate::CopyMapIter; |
19 use crate::DirstateEntry; |
21 use crate::DirstateEntry; |
20 use crate::DirstateError; |
22 use crate::DirstateError; |
719 fn add_file( |
721 fn add_file( |
720 &mut self, |
722 &mut self, |
721 filename: &HgPath, |
723 filename: &HgPath, |
722 old_state: EntryState, |
724 old_state: EntryState, |
723 entry: DirstateEntry, |
725 entry: DirstateEntry, |
|
726 from_p2: bool, |
|
727 possibly_dirty: bool, |
724 ) -> Result<(), DirstateError> { |
728 ) -> Result<(), DirstateError> { |
|
729 let mut entry = entry; |
|
730 if entry.state == EntryState::Added { |
|
731 assert!(!possibly_dirty); |
|
732 assert!(!from_p2); |
|
733 entry.size = SIZE_NON_NORMAL; |
|
734 entry.mtime = MTIME_UNSET; |
|
735 } else if from_p2 { |
|
736 assert!(!possibly_dirty); |
|
737 entry.size = SIZE_FROM_OTHER_PARENT; |
|
738 entry.mtime = MTIME_UNSET; |
|
739 } else if possibly_dirty { |
|
740 entry.size = SIZE_NON_NORMAL; |
|
741 entry.mtime = MTIME_UNSET; |
|
742 } else { |
|
743 entry.size = entry.size & V1_RANGEMASK; |
|
744 entry.mtime = entry.mtime & V1_RANGEMASK; |
|
745 } |
|
746 |
725 Ok(self.add_or_remove_file(filename, old_state, entry)?) |
747 Ok(self.add_or_remove_file(filename, old_state, entry)?) |
726 } |
748 } |
727 |
749 |
728 fn remove_file( |
750 fn remove_file( |
729 &mut self, |
751 &mut self, |