diff -r 46bf4983cf31 -r 61b3529e2377 mercurial/revset.py --- a/mercurial/revset.py Mon May 25 11:06:49 2015 -0700 +++ b/mercurial/revset.py Tue May 26 07:44:37 2015 -0500 @@ -329,7 +329,8 @@ def stringset(repo, subset, x): x = repo[x].rev() - if x in subset: + if (x in subset + or x == node.nullrev and isinstance(subset, fullreposet)): return baseset([x]) return baseset() @@ -1911,7 +1912,7 @@ def wdir(repo, subset, x): # i18n: "wdir" is a keyword getargs(x, 0, 0, _("wdir takes no arguments")) - if None in subset: + if None in subset or isinstance(subset, fullreposet): return baseset([None]) return baseset() @@ -3470,11 +3471,6 @@ def __init__(self, repo): super(fullreposet, self).__init__(repo) - def __contains__(self, rev): - # assumes the given rev is valid - hidden = self._hiddenrevs - return not (hidden and rev in hidden) - def __and__(self, other): """As self contains the whole repo, all of the other set should also be in self. Therefore `self & other = other`.