diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py index b45c4dc65adc46b7801bbb446818135dace5c78b_bWVyY3VyaWFsL3B1cmUvcGFyc2Vycy5weQ==..da304f78a0e10e45840852ec7d728122f8bbbc6c_bWVyY3VyaWFsL3B1cmUvcGFyc2Vycy5weQ== 100644 --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -162,7 +162,7 @@ return cls(p1_tracked=p1_tracked, p2_info=p2_info) elif state == b'n': if size == FROM_P2: - return cls.new_from_p2() + return cls(wc_tracked=True, p2_info=True) elif size == NONNORMAL: return cls.new_possibly_dirty() elif mtime == AMBIGUOUS_TIME: diff --git a/rust/hg-core/src/dirstate/entry.rs b/rust/hg-core/src/dirstate/entry.rs index b45c4dc65adc46b7801bbb446818135dace5c78b_cnVzdC9oZy1jb3JlL3NyYy9kaXJzdGF0ZS9lbnRyeS5ycw==..da304f78a0e10e45840852ec7d728122f8bbbc6c_cnVzdC9oZy1jb3JlL3NyYy9kaXJzdGF0ZS9lbnRyeS5ycw== 100644 --- a/rust/hg-core/src/dirstate/entry.rs +++ b/rust/hg-core/src/dirstate/entry.rs @@ -68,7 +68,12 @@ match state { EntryState::Normal => { if size == SIZE_FROM_OTHER_PARENT { - Self::new_from_p2() + Self { + // might be missing P1_TRACKED + flags: Flags::WDIR_TRACKED | Flags::P2_INFO, + mode_size: None, + mtime: None, + } } else if size == SIZE_NON_NORMAL { Self::new_possibly_dirty() } else if mtime == MTIME_UNSET {