489 raise NotImplementedError |
489 raise NotImplementedError |
490 |
490 |
491 |
491 |
492 class fsbackend(abstractbackend): |
492 class fsbackend(abstractbackend): |
493 def __init__(self, ui, basedir): |
493 def __init__(self, ui, basedir): |
494 super(fsbackend, self).__init__(ui) |
494 super().__init__(ui) |
495 self.opener = vfsmod.vfs(basedir) |
495 self.opener = vfsmod.vfs(basedir) |
496 |
496 |
497 def getfile(self, fname): |
497 def getfile(self, fname): |
498 if self.opener.islink(fname): |
498 if self.opener.islink(fname): |
499 return (self.opener.readlink(fname), (True, False)) |
499 return (self.opener.readlink(fname), (True, False)) |
538 return self.opener.lexists(fname) |
538 return self.opener.lexists(fname) |
539 |
539 |
540 |
540 |
541 class workingbackend(fsbackend): |
541 class workingbackend(fsbackend): |
542 def __init__(self, ui, repo, similarity): |
542 def __init__(self, ui, repo, similarity): |
543 super(workingbackend, self).__init__(ui, repo.root) |
543 super().__init__(ui, repo.root) |
544 self.repo = repo |
544 self.repo = repo |
545 self.similarity = similarity |
545 self.similarity = similarity |
546 self.removed = set() |
546 self.removed = set() |
547 self.changed = set() |
547 self.changed = set() |
548 self.copied = [] |
548 self.copied = [] |
555 _(b'cannot patch %s: file is not tracked') % fname |
555 _(b'cannot patch %s: file is not tracked') % fname |
556 ) |
556 ) |
557 |
557 |
558 def setfile(self, fname, data, mode, copysource): |
558 def setfile(self, fname, data, mode, copysource): |
559 self._checkknown(fname) |
559 self._checkknown(fname) |
560 super(workingbackend, self).setfile(fname, data, mode, copysource) |
560 super().setfile(fname, data, mode, copysource) |
561 if copysource is not None: |
561 if copysource is not None: |
562 self.copied.append((copysource, fname)) |
562 self.copied.append((copysource, fname)) |
563 self.changed.add(fname) |
563 self.changed.add(fname) |
564 |
564 |
565 def unlink(self, fname): |
565 def unlink(self, fname): |
566 self._checkknown(fname) |
566 self._checkknown(fname) |
567 super(workingbackend, self).unlink(fname) |
567 super().unlink(fname) |
568 self.removed.add(fname) |
568 self.removed.add(fname) |
569 self.changed.add(fname) |
569 self.changed.add(fname) |
570 |
570 |
571 def close(self): |
571 def close(self): |
572 with self.repo.dirstate.changing_files(self.repo): |
572 with self.repo.dirstate.changing_files(self.repo): |
626 shutil.rmtree(self.opener.base) |
626 shutil.rmtree(self.opener.base) |
627 |
627 |
628 |
628 |
629 class repobackend(abstractbackend): |
629 class repobackend(abstractbackend): |
630 def __init__(self, ui, repo, ctx, store): |
630 def __init__(self, ui, repo, ctx, store): |
631 super(repobackend, self).__init__(ui) |
631 super().__init__(ui) |
632 self.repo = repo |
632 self.repo = repo |
633 self.ctx = ctx |
633 self.ctx = ctx |
634 self.store = store |
634 self.store = store |
635 self.changed = set() |
635 self.changed = set() |
636 self.removed = set() |
636 self.removed = set() |