diff -r 09124cce913f -r b5c227f3e461 mercurial/revset.py --- a/mercurial/revset.py Sun May 03 17:33:14 2015 +0900 +++ b/mercurial/revset.py Mon Apr 20 10:52:20 2015 +0300 @@ -1294,7 +1294,10 @@ # i18n: "id" is a keyword n = getstring(l[0], _("id requires a string")) if len(n) == 40: - rn = repo[n].rev() + try: + rn = repo.changelog.rev(node.bin(n)) + except (LookupError, TypeError): + rn = None else: rn = None pm = repo.changelog._partialmatch(n)