comparison mercurial/patch.py @ 50100:e8c170a6571d

dirstate: use `dirstate.change_files` to scope the change in `import` This is the way.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 14 Dec 2022 00:43:24 +0100
parents 2e726c934fcd
children 1c810421a82f
comparison
equal deleted inserted replaced
50099:5cfc48354d0f 50100:e8c170a6571d
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