diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -363,16 +363,12 @@ raise RuntimeError('untracked item') elif self.removed and self._p1_tracked and self._p2_info: return NONNORMAL - elif self.removed and self._p2_info: + elif self._p2_info: return FROM_P2 elif self.removed: return 0 - elif self.merged: - return FROM_P2 elif self.added: return NONNORMAL - elif self.from_p2: - return FROM_P2 elif self._size is None: return NONNORMAL else: 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 @@ -250,16 +250,12 @@ && self.flags.contains(Flags::P1_TRACKED | Flags::P2_INFO) { SIZE_NON_NORMAL - } else if self.removed() && self.flags.contains(Flags::P2_INFO) { + } else if self.flags.contains(Flags::P2_INFO) { SIZE_FROM_OTHER_PARENT } else if self.removed() { 0 - } else if self.merged() { - SIZE_FROM_OTHER_PARENT } else if self.added() { SIZE_NON_NORMAL - } else if self.from_p2() { - SIZE_FROM_OTHER_PARENT } else if let Some((_mode, size)) = self.mode_size { size } else {