rust/hg-core/src/dirstate.rs
changeset 47113 be579775c2d9
parent 47108 e3cebe96c0fc
child 47124 cd8ca38fccff
equal deleted inserted replaced
47112:d5956136d19d 47113:be579775c2d9
    39         self.state != EntryState::Normal || self.mtime == MTIME_UNSET
    39         self.state != EntryState::Normal || self.mtime == MTIME_UNSET
    40     }
    40     }
    41 
    41 
    42     pub fn is_from_other_parent(&self) -> bool {
    42     pub fn is_from_other_parent(&self) -> bool {
    43         self.state == EntryState::Normal && self.size == SIZE_FROM_OTHER_PARENT
    43         self.state == EntryState::Normal && self.size == SIZE_FROM_OTHER_PARENT
       
    44     }
       
    45 
       
    46     // TODO: other platforms
       
    47     #[cfg(unix)]
       
    48     pub fn mode_changed(
       
    49         &self,
       
    50         filesystem_metadata: &std::fs::Metadata,
       
    51     ) -> bool {
       
    52         use std::os::unix::fs::MetadataExt;
       
    53         const EXEC_BIT_MASK: u32 = 0o100;
       
    54         let dirstate_exec_bit = (self.mode as u32) & EXEC_BIT_MASK;
       
    55         let fs_exec_bit = filesystem_metadata.mode() & EXEC_BIT_MASK;
       
    56         dirstate_exec_bit != fs_exec_bit
    44     }
    57     }
    45 }
    58 }
    46 
    59 
    47 #[derive(BytesCast)]
    60 #[derive(BytesCast)]
    48 #[repr(C)]
    61 #[repr(C)]