D2969: context: move reuse of context object to repo.__getitem__ (API)
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Fri Mar 30 13:29:41 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGbb47dc2f71a0: context: move reuse of context object to repo.__getitem__ (API) (authored by martinvonz, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D2969?vs=7371&id=7392
REVISION DETAIL
https://phab.mercurial-scm.org/D2969
AFFECTED FILES
mercurial/context.py
mercurial/localrepo.py
CHANGE DETAILS
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -782,6 +782,8 @@
def __getitem__(self, changeid):
if changeid is None:
return context.workingctx(self)
+ if isinstance(changeid, context.basectx):
+ return changeid
if isinstance(changeid, slice):
# wdirrev isn't contiguous so the slice shouldn't include it
return [context.changectx(self, i)
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -62,11 +62,6 @@
be committed,
memctx: a context that represents changes in-memory and can also
be committed."""
- def __new__(cls, repo, changeid='', *args, **kwargs):
- if isinstance(changeid, basectx):
- return changeid
-
- return super(basectx, cls).__new__(cls)
def __bytes__(self):
return short(self.node())
@@ -412,11 +407,6 @@
def __init__(self, repo, changeid='.'):
"""changeid is a revision number, node, or tag"""
- # since basectx.__new__ already took care of copying the object, we
- # don't need to do anything in __init__, so we just exit here
- if isinstance(changeid, basectx):
- return
-
if changeid == '':
changeid = '.'
self._repo = repo
@@ -2486,9 +2476,6 @@
dateutil.parsedate() and defaults to current date, extra is a dictionary of
metadata or is left empty.
"""
- def __new__(cls, repo, originalctx, *args, **kwargs):
- return super(metadataonlyctx, cls).__new__(cls, repo)
-
def __init__(self, repo, originalctx, parents=None, text=None, user=None,
date=None, extra=None, editor=False):
if text is None:
To: martinvonz, #hg-reviewers, indygreg
Cc: indygreg, yuja, smf, mercurial-devel
More information about the Mercurial-devel
mailing list