462 entry = self._map.get(d) |
462 entry = self._map.get(d) |
463 if entry is not None and entry[0] != b'r': |
463 if entry is not None and entry[0] != b'r': |
464 msg = _(b'file %r in dirstate clashes with %r') |
464 msg = _(b'file %r in dirstate clashes with %r') |
465 msg %= (pycompat.bytestr(d), pycompat.bytestr(f)) |
465 msg %= (pycompat.bytestr(d), pycompat.bytestr(f)) |
466 raise error.Abort(msg) |
466 raise error.Abort(msg) |
467 if from_p2: |
467 if state == b'a': |
|
468 assert not possibly_dirty |
|
469 assert not from_p2 |
|
470 size = NONNORMAL |
|
471 mtime = AMBIGUOUS_TIME |
|
472 elif from_p2: |
|
473 assert not possibly_dirty |
468 size = FROM_P2 |
474 size = FROM_P2 |
469 mtime = AMBIGUOUS_TIME |
475 mtime = AMBIGUOUS_TIME |
470 elif possibly_dirty: |
476 elif possibly_dirty: |
471 mtime = AMBIGUOUS_TIME |
477 mtime = AMBIGUOUS_TIME |
472 else: |
478 else: |
473 assert size != FROM_P2 |
479 assert size != FROM_P2 |
474 if size != NONNORMAL: |
480 assert size != NONNORMAL |
475 size = size & _rangemask |
481 size = size & _rangemask |
476 if mtime != AMBIGUOUS_TIME: |
482 mtime = mtime & _rangemask |
477 mtime = mtime & _rangemask |
|
478 self._dirty = True |
483 self._dirty = True |
479 self._updatedfiles.add(f) |
484 self._updatedfiles.add(f) |
480 self._map.addfile(f, oldstate, state, mode, size, mtime) |
485 self._map.addfile(f, oldstate, state, mode, size, mtime) |
481 |
486 |
482 def normal(self, f, parentfiledata=None): |
487 def normal(self, f, parentfiledata=None): |