From patchwork Fri Jul 2 15:18:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D10931: dirstate: add an explicit `from_p2` parameter to `_addpath` From: phabricator X-Patchwork-Id: 49245 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 2 Jul 2021 15:18:14 +0000 marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This lets says what we mean instead of using magic value. The lower level can then decide how to express that. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10931 AFFECTED FILES mercurial/dirstate.py CHANGE DETAILS To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -438,7 +438,15 @@ def copies(self): return self._map.copymap - def _addpath(self, f, state, mode, size=NONNORMAL, mtime=AMBIGUOUS_TIME): + def _addpath( + self, + f, + state, + mode, + size=NONNORMAL, + mtime=AMBIGUOUS_TIME, + from_p2=False, + ): oldstate = self[f] if state == b'a' or oldstate == b'r': scmutil.checkfilename(f) @@ -455,10 +463,15 @@ msg = _(b'file %r in dirstate clashes with %r') msg %= (pycompat.bytestr(d), pycompat.bytestr(f)) raise error.Abort(msg) - if size != NONNORMAL and size != FROM_P2: - size = size & _rangemask - if mtime != AMBIGUOUS_TIME: - mtime = mtime & _rangemask + if from_p2: + size = FROM_P2 + mtime = AMBIGUOUS_TIME + else: + assert size != FROM_P2 + if size != NONNORMAL: + size = size & _rangemask + if mtime != AMBIGUOUS_TIME: + mtime = mtime & _rangemask self._dirty = True self._updatedfiles.add(f) self._map.addfile(f, oldstate, state, mode, size, mtime) @@ -519,10 +532,10 @@ raise error.Abort(msg) if f in self and self[f] == b'n': # merge-like - self._addpath(f, b'm', 0, FROM_P2) + self._addpath(f, b'm', 0, from_p2=True) else: # add-like - self._addpath(f, b'n', 0, FROM_P2) + self._addpath(f, b'n', 0, from_p2=True) self._map.copymap.pop(f, None) def add(self, f):