dirstate: infer the 'n' state from `from_p2`
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sun, 04 Jul 2021 01:58:03 +0200
changeset 47529 d3cf20328abd
parent 47528 80617f3c0f9a
child 47530 a1745a292885
dirstate: infer the 'n' state from `from_p2` This flag is only used with 'n' so lets set the state based on that parameter in this case. Differential Revision: https://phab.mercurial-scm.org/D10971
mercurial/dirstate.py
mercurial/dirstatemap.py
rust/hg-core/src/dirstate/dirstate_map.rs
rust/hg-core/src/dirstate_tree/dirstate_map.rs
--- a/mercurial/dirstate.py	Sun Jul 04 01:57:28 2021 +0200
+++ b/mercurial/dirstate.py	Sun Jul 04 01:58:03 2021 +0200
@@ -543,7 +543,7 @@
             self._addpath(f, merged=True)
         else:
             # add-like
-            self._addpath(f, b'n', 0, from_p2=True)
+            self._addpath(f, from_p2=True)
         self._map.copymap.pop(f, None)
 
     def add(self, f):
--- a/mercurial/dirstatemap.py	Sun Jul 04 01:57:28 2021 +0200
+++ b/mercurial/dirstatemap.py	Sun Jul 04 01:58:03 2021 +0200
@@ -172,6 +172,7 @@
             mtime = AMBIGUOUS_TIME
         elif from_p2:
             assert not possibly_dirty
+            state = b'n'
             size = FROM_P2
             mtime = AMBIGUOUS_TIME
         elif possibly_dirty:
--- a/rust/hg-core/src/dirstate/dirstate_map.rs	Sun Jul 04 01:57:28 2021 +0200
+++ b/rust/hg-core/src/dirstate/dirstate_map.rs	Sun Jul 04 01:58:03 2021 +0200
@@ -91,6 +91,7 @@
             entry.mtime = MTIME_UNSET;
         } else if from_p2 {
             assert!(!possibly_dirty);
+            entry.state = EntryState::Normal;
             entry.size = SIZE_FROM_OTHER_PARENT;
             entry.mtime = MTIME_UNSET;
         } else if possibly_dirty {
--- a/rust/hg-core/src/dirstate_tree/dirstate_map.rs	Sun Jul 04 01:57:28 2021 +0200
+++ b/rust/hg-core/src/dirstate_tree/dirstate_map.rs	Sun Jul 04 01:58:03 2021 +0200
@@ -742,6 +742,7 @@
             entry.mtime = MTIME_UNSET;
         } else if from_p2 {
             assert!(!possibly_dirty);
+            entry.state = EntryState::Normal;
             entry.size = SIZE_FROM_OTHER_PARENT;
             entry.mtime = MTIME_UNSET;
         } else if possibly_dirty {