rust/hg-core/src/dirstate_tree/dirstate_map.rs
changeset 47521 abed645b8e96
parent 47511 eaae39894312
child 47524 69a463a4f193
equal deleted inserted replaced
47520:5decb7a49bb6 47521:abed645b8e96
     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,