568 super(workingbackend, self).unlink(fname) |
568 super(workingbackend, self).unlink(fname) |
569 self.removed.add(fname) |
569 self.removed.add(fname) |
570 self.changed.add(fname) |
570 self.changed.add(fname) |
571 |
571 |
572 def close(self): |
572 def close(self): |
573 wctx = self.repo[None] |
573 with self.repo.dirstate.changing_files(self.repo): |
574 changed = set(self.changed) |
574 wctx = self.repo[None] |
575 for src, dst in self.copied: |
575 changed = set(self.changed) |
576 scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst) |
576 for src, dst in self.copied: |
577 if self.removed: |
577 scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst) |
578 wctx.forget(sorted(self.removed)) |
578 if self.removed: |
579 for f in self.removed: |
579 wctx.forget(sorted(self.removed)) |
580 if f not in self.repo.dirstate: |
580 for f in self.removed: |
581 # File was deleted and no longer belongs to the |
581 if f not in self.repo.dirstate: |
582 # dirstate, it was probably marked added then |
582 # File was deleted and no longer belongs to the |
583 # deleted, and should not be considered by |
583 # dirstate, it was probably marked added then |
584 # marktouched(). |
584 # deleted, and should not be considered by |
585 changed.discard(f) |
585 # marktouched(). |
586 if changed: |
586 changed.discard(f) |
587 scmutil.marktouched(self.repo, changed, self.similarity) |
587 if changed: |
588 return sorted(self.changed) |
588 scmutil.marktouched(self.repo, changed, self.similarity) |
|
589 return sorted(self.changed) |
589 |
590 |
590 |
591 |
591 class filestore: |
592 class filestore: |
592 def __init__(self, maxsize=None): |
593 def __init__(self, maxsize=None): |
593 self.opener = None |
594 self.opener = None |