comparison mercurial/patch.py @ 48099:e0d566f3ffce

dirstate-item: use `any_tracked` instead of `state` to apply patches Differential Revision: https://phab.mercurial-scm.org/D11536
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 29 Sep 2021 15:40:13 +0200
parents d55b71393907
children 6a454e7053a1
comparison
equal deleted inserted replaced
48098:ba79d99ec1ae 48099:e0d566f3ffce
548 self.removed = set() 548 self.removed = set()
549 self.changed = set() 549 self.changed = set()
550 self.copied = [] 550 self.copied = []
551 551
552 def _checkknown(self, fname): 552 def _checkknown(self, fname):
553 if self.repo.dirstate[fname] == b'?' and self.exists(fname): 553 if not self.repo.dirstate.get_entry(fname).any_tracked and self.exists(
554 fname
555 ):
554 raise PatchError(_(b'cannot patch %s: file is not tracked') % fname) 556 raise PatchError(_(b'cannot patch %s: file is not tracked') % fname)
555 557
556 def setfile(self, fname, data, mode, copysource): 558 def setfile(self, fname, data, mode, copysource):
557 self._checkknown(fname) 559 self._checkknown(fname)
558 super(workingbackend, self).setfile(fname, data, mode, copysource) 560 super(workingbackend, self).setfile(fname, data, mode, copysource)