mercurial/patch.py
changeset 52643 5cc8deb96b48
parent 52640 24ee91ba9aa8
child 52644 e627cc25b6f3
equal deleted inserted replaced
52642:73ab542565e0 52643:5cc8deb96b48
   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()