D7822: overlayworkginctx: implement a setparents() to mirror dirstate.setparents()
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Jan 11 06:47:54 UTC 2020
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This lets us make the in-memory and on-disk code a bit more
similar. I'll soon also implement setparents() on the regular
workingctx.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7822
AFFECTED FILES
hgext/rebase.py
mercurial/context.py
CHANGE DETAILS
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -2161,6 +2161,10 @@
# ``overlayworkingctx`` (e.g. with --collapse).
util.clearcachedproperty(self, b'_manifest')
+ def setparents(self, p1node, p2node=nullid):
+ assert p1node == self._wrappedctx.node()
+ self._parents = [self._wrappedctx, self._repo.unfiltered()[p2node]]
+
def data(self, path):
if self.isdirty(path):
if self._cache[path][b'exists']:
@@ -2415,9 +2419,9 @@
``text`` is the commit message.
``parents`` (optional) are rev numbers.
"""
- # Default parents to the wrapped contexts' if not passed.
+ # Default parents to the wrapped context if not passed.
if parents is None:
- parents = self._wrappedctx.parents()
+ parents = self.parents()
if len(parents) == 1:
parents = (parents[0], None)
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1434,9 +1434,9 @@
if b'branch' in extra:
branch = extra[b'branch']
+ wctx.setparents(repo[p1].node(), repo[p2].node())
memctx = wctx.tomemctx(
commitmsg,
- parents=(p1, p2),
date=date,
extra=extra,
user=user,
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list