mercurial/util.py
changeset 40879 0c638ff69f5c
parent 40689 475921a3028c
child 40880 7cda0cacbbf6
--- a/mercurial/util.py	Wed Oct 31 22:05:45 2018 +0900
+++ b/mercurial/util.py	Wed Oct 31 22:29:05 2018 +0900
@@ -1337,6 +1337,20 @@
         except KeyError:
             return default
 
+    def peek(self, k, default=_notset):
+        """Get the specified item without moving it to the head
+
+        Unlike get(), this doesn't mutate the internal state. But be aware
+        that it doesn't mean peek() is thread safe.
+        """
+        try:
+            node = self._cache[k]
+            return node.value
+        except KeyError:
+            if default is _notset:
+                raise
+            return default
+
     def clear(self):
         n = self._head
         while n.key is not _notset: