diff -r 7332bf4ae959 -r 42bb1812686f mercurial/revset.py --- a/mercurial/revset.py Mon Aug 31 23:29:15 2015 +0900 +++ b/mercurial/revset.py Tue Sep 01 16:46:05 2015 -0700 @@ -2067,14 +2067,17 @@ r = int(t) if str(r) != t or r not in cl: raise ValueError + revs = [r] except ValueError: - r = repo[t].rev() - if r in seen: - continue - if (r in subset - or r == node.nullrev and isinstance(subset, fullreposet)): - ls.append(r) - seen.add(r) + revs = stringset(repo, subset, t) + + for r in revs: + if r in seen: + continue + if (r in subset + or r == node.nullrev and isinstance(subset, fullreposet)): + ls.append(r) + seen.add(r) return baseset(ls) # for internal use