diff -r 833fa28cd949 -r 5f87f2305ad0 mercurial/revset.py --- a/mercurial/revset.py Wed Jun 10 19:58:27 2015 -0700 +++ b/mercurial/revset.py Tue Jun 16 19:47:46 2015 -0700 @@ -1107,8 +1107,9 @@ # i18n: "head" is a keyword getargs(x, 0, 0, _("head takes no arguments")) hs = set() + cl = repo.changelog for b, ls in repo.branchmap().iteritems(): - hs.update(repo[h].rev() for h in ls) + hs.update(cl.rev(h) for h in ls) # XXX using a set to feed the baseset is wrong. Sets are not ordered. # This does not break because of other fullreposet misbehavior. # XXX We should not be using '.filter' here, but combines subset with '&'