98 tracking in a different way. |
98 tracking in a different way. |
99 """ |
99 """ |
100 |
100 |
101 def _refresh_entry(self, f, entry): |
101 def _refresh_entry(self, f, entry): |
102 """record updated state of an entry""" |
102 """record updated state of an entry""" |
103 |
|
104 def _insert_entry(self, f, entry): |
|
105 """add a new dirstate entry (or replace an unrelated one) |
|
106 |
|
107 The fact it is actually new is the responsability of the caller |
|
108 """ |
|
109 |
103 |
110 def _drop_entry(self, f): |
104 def _drop_entry(self, f): |
111 """remove any entry for file f |
105 """remove any entry for file f |
112 |
106 |
113 This should also drop associated copy information |
107 This should also drop associated copy information |
509 p1_tracked=p1_tracked, |
503 p1_tracked=p1_tracked, |
510 p2_info=p2_info, |
504 p2_info=p2_info, |
511 has_meaningful_mtime=has_meaningful_mtime, |
505 has_meaningful_mtime=has_meaningful_mtime, |
512 parentfiledata=parentfiledata, |
506 parentfiledata=parentfiledata, |
513 ) |
507 ) |
514 self._insert_entry(filename, entry) |
508 self._map[filename] = entry |
515 |
509 |
516 def set_tracked(self, filename): |
510 def set_tracked(self, filename): |
517 new = False |
511 new = False |
518 entry = self.get(filename) |
512 entry = self.get(filename) |
519 if entry is None: |
513 if entry is None: |
520 self._dirs_incr(filename) |
514 self._dirs_incr(filename) |
521 entry = DirstateItem( |
515 entry = DirstateItem( |
522 wc_tracked=True, |
516 wc_tracked=True, |
523 ) |
517 ) |
524 |
518 |
525 self._insert_entry(filename, entry) |
519 self._map[filename] = entry |
526 new = True |
520 new = True |
527 elif not entry.tracked: |
521 elif not entry.tracked: |
528 self._dirs_incr(filename, entry) |
522 self._dirs_incr(filename, entry) |
529 entry.set_tracked() |
523 entry.set_tracked() |
530 self._refresh_entry(filename, entry) |
524 self._refresh_entry(filename, entry) |
538 return new |
532 return new |
539 |
533 |
540 def _refresh_entry(self, f, entry): |
534 def _refresh_entry(self, f, entry): |
541 if not entry.any_tracked: |
535 if not entry.any_tracked: |
542 self._map.pop(f, None) |
536 self._map.pop(f, None) |
543 |
|
544 def _insert_entry(self, f, entry): |
|
545 self._map[f] = entry |
|
546 |
537 |
547 def _drop_entry(self, f): |
538 def _drop_entry(self, f): |
548 self._map.pop(f, None) |
539 self._map.pop(f, None) |
549 self.copymap.pop(f, None) |
540 self.copymap.pop(f, None) |
550 |
541 |
716 if not entry.any_tracked: |
707 if not entry.any_tracked: |
717 self._map.drop_item_and_copy_source(f) |
708 self._map.drop_item_and_copy_source(f) |
718 else: |
709 else: |
719 self._map.addfile(f, entry) |
710 self._map.addfile(f, entry) |
720 |
711 |
721 def _insert_entry(self, f, entry): |
|
722 self._map.addfile(f, entry) |
|
723 |
|
724 def set_tracked(self, f): |
712 def set_tracked(self, f): |
725 return self._map.set_tracked(f) |
713 return self._map.set_tracked(f) |
726 |
714 |
727 def reset_state( |
715 def reset_state( |
728 self, |
716 self, |