mercurial/scmutil.py
changeset 37528 d2b484eed1ec
parent 37527 1c09481acdcc
child 37529 45667439439e
--- a/mercurial/scmutil.py	Fri Apr 06 23:39:40 2018 -0700
+++ b/mercurial/scmutil.py	Fri Apr 06 23:43:52 2018 -0700
@@ -18,6 +18,7 @@
 
 from .i18n import _
 from .node import (
+    bin,
     hex,
     nullid,
     short,
@@ -479,8 +480,20 @@
         except (ValueError, OverflowError, IndexError):
             pass
 
+        if len(symbol) == 40:
+            try:
+                node = bin(symbol)
+                rev = repo.changelog.rev(node)
+                return repo[rev]
+            except error.FilteredLookupError:
+                raise
+            except (TypeError, LookupError):
+                pass
+
         return repo[symbol]
 
+    except error.WdirUnsupported:
+        return repo[None]
     except (error.FilteredIndexError, error.FilteredLookupError,
             error.FilteredRepoLookupError):
         raise _filterederror(repo, symbol)