# HG changeset patch # User Yuya Nishihara # Date 1408163145 -32400 # Node ID 22049b565d57a7d46fb359b0415a0ce2b3602264 # Parent 60c791592aa7766e60ccde89feed24fe259e7356 localrepo: provide workingctx by integer revision This allows us to use the integer representation in revset. None doesn't work well while computing revset because revset heavily depends on and optimized for integer revisions. Still repo[wdirrev].rev() is None, which means the canonical form of the working-directory revision is None. This patch doesn't add the case for the wdirid because we can't handle short and ambiguous identifiers here. Perhaps, the wdirid will have to be handled in the changelog layer. diff -r 60c791592aa7 -r 22049b565d57 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Apr 12 21:52:02 2015 +0900 +++ b/mercurial/localrepo.py Sat Aug 16 13:25:45 2014 +0900 @@ -4,7 +4,7 @@ # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -from node import hex, nullid, short +from node import hex, nullid, wdirrev, short from i18n import _ import urllib import peer, changegroup, subrepo, pushkey, obsolete, repoview @@ -479,7 +479,7 @@ return dirstate.dirstate(self.vfs, self.ui, self.root, validate) def __getitem__(self, changeid): - if changeid is None: + if changeid is None or changeid == wdirrev: return context.workingctx(self) if isinstance(changeid, slice): return [context.changectx(self, i)