changeset 48158:da304f78a0e1

dirstate-item: replace call to new_from_p2 The constructor is on its way out, so we inline the last relevant call before dropping it. Differential Revision: https://phab.mercurial-scm.org/D11602
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 01 Oct 2021 09:21:52 +0200
parents b45c4dc65adc
children 252d2f3f0d17
files mercurial/pure/parsers.py rust/hg-core/src/dirstate/entry.rs
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/pure/parsers.py	Fri Oct 01 09:16:53 2021 +0200
+++ b/mercurial/pure/parsers.py	Fri Oct 01 09:21:52 2021 +0200
@@ -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:
--- a/rust/hg-core/src/dirstate/entry.rs	Fri Oct 01 09:16:53 2021 +0200
+++ b/rust/hg-core/src/dirstate/entry.rs	Fri Oct 01 09:21:52 2021 +0200
@@ -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 {