Mercurial > public > mercurial-scm > hg-stable
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(): |