comparison mercurial/context.py @ 50022:c166b212bdee

dirstate: pass the repo to the `changeparent` method If we want the context to be responsible for writing (and we want it), we need to have access to a localrepository object. So we now requires a localrepository object as an argument to this context manager.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 25 Jan 2023 18:46:20 +0100
parents 2e726c934fcd
children 7a8bfc05b691
comparison
equal deleted inserted replaced
50021:376395868b7b 50022:c166b212bdee
1593 1593
1594 def setparents(self, p1node, p2node=None): 1594 def setparents(self, p1node, p2node=None):
1595 if p2node is None: 1595 if p2node is None:
1596 p2node = self._repo.nodeconstants.nullid 1596 p2node = self._repo.nodeconstants.nullid
1597 dirstate = self._repo.dirstate 1597 dirstate = self._repo.dirstate
1598 with dirstate.parentchange(): 1598 with dirstate.parentchange(self._repo):
1599 copies = dirstate.setparents(p1node, p2node) 1599 copies = dirstate.setparents(p1node, p2node)
1600 pctx = self._repo[p1node] 1600 pctx = self._repo[p1node]
1601 if copies: 1601 if copies:
1602 # Adjust copy records, the dirstate cannot do it, it 1602 # Adjust copy records, the dirstate cannot do it, it
1603 # requires access to parents manifests. Preserve them 1603 # requires access to parents manifests. Preserve them
2048 match = self._repo.narrowmatch(match) 2048 match = self._repo.narrowmatch(match)
2049 ds = self._repo.dirstate 2049 ds = self._repo.dirstate
2050 return sorted(f for f in ds.matches(match) if ds.get_entry(f).tracked) 2050 return sorted(f for f in ds.matches(match) if ds.get_entry(f).tracked)
2051 2051
2052 def markcommitted(self, node): 2052 def markcommitted(self, node):
2053 with self._repo.dirstate.parentchange(): 2053 with self._repo.dirstate.parentchange(self._repo):
2054 for f in self.modified() + self.added(): 2054 for f in self.modified() + self.added():
2055 self._repo.dirstate.update_file( 2055 self._repo.dirstate.update_file(
2056 f, p1_tracked=True, wc_tracked=True 2056 f, p1_tracked=True, wc_tracked=True
2057 ) 2057 )
2058 for f in self.removed(): 2058 for f in self.removed():