# HG changeset patch # User Dirkjan Ochtman # Date 1226606991 -3600 # Node ID ad0eb87624580e050b158df0940bf75de83c970e # Parent eb240755386da4d51bf0cab8e97c973c1afdbcd7 context: special-case changectx setup for integer changeid diff -r eb240755386d -r ad0eb8762458 mercurial/context.py --- a/mercurial/context.py Thu Nov 13 12:52:03 2008 -0600 +++ b/mercurial/context.py Thu Nov 13 21:09:51 2008 +0100 @@ -17,8 +17,12 @@ if changeid == '': changeid = '.' self._repo = repo - self._node = self._repo.lookup(changeid) - self._rev = self._repo.changelog.rev(self._node) + if isinstance(changeid, (long, int)): + self._rev = changeid + self._node = self._repo.changelog.node(changeid) + else: + self._node = self._repo.lookup(changeid) + self._rev = self._repo.changelog.rev(self._node) def __str__(self): return short(self.node()) @@ -59,8 +63,8 @@ self._manifestdelta = md return self._manifestdelta elif name == '_parents': - p = self._repo.changelog.parents(self._node) - if p[1] == nullid: + p = self._repo.changelog.parentrevs(self._rev) + if p[1] == nullrev: p = p[:-1] self._parents = [changectx(self._repo, x) for x in p] return self._parents