519 entry = self._map.get(filename) |
519 entry = self._map.get(filename) |
520 if entry is None: |
520 if entry is None: |
521 wc_tracked = False |
521 wc_tracked = False |
522 else: |
522 else: |
523 wc_tracked = entry.tracked |
523 wc_tracked = entry.tracked |
|
524 possibly_dirty = False |
524 if p1_tracked and wc_tracked: |
525 if p1_tracked and wc_tracked: |
525 # the underlying reference might have changed, we will have to |
526 # the underlying reference might have changed, we will have to |
526 # check it. |
527 # check it. |
527 self.normallookup(filename) |
528 possibly_dirty = True |
528 elif not (p1_tracked or wc_tracked): |
529 elif not (p1_tracked or wc_tracked): |
529 # the file is no longer relevant to anyone |
530 # the file is no longer relevant to anyone |
530 self._drop(filename) |
531 self._drop(filename) |
531 elif (not p1_tracked) and wc_tracked: |
532 elif (not p1_tracked) and wc_tracked: |
532 if not entry.added: |
533 if entry is not None and entry.added: |
533 self._add(filename) |
534 return # avoid dropping copy information (maybe?) |
534 elif p1_tracked and not wc_tracked: |
535 elif p1_tracked and not wc_tracked: |
535 if entry is None or not entry.removed: |
536 pass |
536 self._remove(filename) |
|
537 else: |
537 else: |
538 assert False, 'unreachable' |
538 assert False, 'unreachable' |
|
539 |
|
540 # this mean we are doing call for file we do not really care about the |
|
541 # data (eg: added or removed), however this should be a minor overhead |
|
542 # compared to the overall update process calling this. |
|
543 parentfiledata = None |
|
544 if wc_tracked: |
|
545 parentfiledata = self._get_filedata(filename) |
|
546 |
|
547 self._updatedfiles.add(filename) |
|
548 self._map.reset_state( |
|
549 filename, |
|
550 wc_tracked, |
|
551 p1_tracked, |
|
552 possibly_dirty=possibly_dirty, |
|
553 parentfiledata=parentfiledata, |
|
554 ) |
539 |
555 |
540 @requires_parents_change |
556 @requires_parents_change |
541 def update_file( |
557 def update_file( |
542 self, |
558 self, |
543 filename, |
559 filename, |