diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -530,7 +530,7 @@ return elif entry.merged or entry.from_p2: return - self._addpath(f, b'n', 0, possibly_dirty=True) + self._addpath(f, possibly_dirty=True) self._map.copymap.pop(f, None) def otherparent(self, f): diff --git a/mercurial/dirstatemap.py b/mercurial/dirstatemap.py --- a/mercurial/dirstatemap.py +++ b/mercurial/dirstatemap.py @@ -175,6 +175,7 @@ size = FROM_P2 mtime = AMBIGUOUS_TIME elif possibly_dirty: + state = b'n' size = NONNORMAL mtime = AMBIGUOUS_TIME else: diff --git a/rust/hg-core/src/dirstate/dirstate_map.rs b/rust/hg-core/src/dirstate/dirstate_map.rs --- a/rust/hg-core/src/dirstate/dirstate_map.rs +++ b/rust/hg-core/src/dirstate/dirstate_map.rs @@ -94,6 +94,7 @@ entry.size = SIZE_FROM_OTHER_PARENT; entry.mtime = MTIME_UNSET; } else if possibly_dirty { + entry.state = EntryState::Normal; entry.size = SIZE_NON_NORMAL; entry.mtime = MTIME_UNSET; } else { diff --git a/rust/hg-core/src/dirstate_tree/dirstate_map.rs b/rust/hg-core/src/dirstate_tree/dirstate_map.rs --- a/rust/hg-core/src/dirstate_tree/dirstate_map.rs +++ b/rust/hg-core/src/dirstate_tree/dirstate_map.rs @@ -745,6 +745,7 @@ entry.size = SIZE_FROM_OTHER_PARENT; entry.mtime = MTIME_UNSET; } else if possibly_dirty { + entry.state = EntryState::Normal; entry.size = SIZE_NON_NORMAL; entry.mtime = MTIME_UNSET; } else {