Mercurial > hg
changeset 47489:4a7df782f416
dirstate: explicitely deal with the `added` case in `_addpath`
This special case is now directly handled, this clarify the possible value for
the other options.
Differential Revision: https://phab.mercurial-scm.org/D10933
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 02 Jul 2021 02:17:31 +0200 |
parents | 91520abe2b2c |
children | 084ed6a7c6fd |
files | mercurial/dirstate.py |
diffstat | 1 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstate.py Fri Jul 02 02:17:18 2021 +0200 +++ b/mercurial/dirstate.py Fri Jul 02 02:17:31 2021 +0200 @@ -464,17 +464,22 @@ msg = _(b'file %r in dirstate clashes with %r') msg %= (pycompat.bytestr(d), pycompat.bytestr(f)) raise error.Abort(msg) - if from_p2: + if state == b'a': + assert not possibly_dirty + assert not from_p2 + size = NONNORMAL + mtime = AMBIGUOUS_TIME + elif from_p2: + assert not possibly_dirty size = FROM_P2 mtime = AMBIGUOUS_TIME elif possibly_dirty: mtime = AMBIGUOUS_TIME else: assert size != FROM_P2 - if size != NONNORMAL: - size = size & _rangemask - if mtime != AMBIGUOUS_TIME: - mtime = mtime & _rangemask + assert size != NONNORMAL + size = size & _rangemask + mtime = mtime & _rangemask self._dirty = True self._updatedfiles.add(f) self._map.addfile(f, oldstate, state, mode, size, mtime)