diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -162,7 +162,7 @@ is not expected to change, unlike the __init__ one. """ if state == b'm': - return cls.new_merged() + return cls(wc_tracked=True, p1_tracked=True, p2_info=True) elif state == b'a': return cls.new_added() elif state == b'r': diff --git a/rust/hg-core/src/dirstate/entry.rs b/rust/hg-core/src/dirstate/entry.rs --- a/rust/hg-core/src/dirstate/entry.rs +++ b/rust/hg-core/src/dirstate/entry.rs @@ -94,7 +94,13 @@ mode_size: None, mtime: None, }, - EntryState::Merged => Self::new_merged(), + EntryState::Merged => Self { + flags: Flags::WDIR_TRACKED + | Flags::P1_TRACKED // might not be true because of rename ? + | Flags::P2_INFO, // might not be true because of rename ? + mode_size: None, + mtime: None, + }, } }