diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -1332,7 +1332,7 @@ def get(self, k, default=None): try: - return self._cache[k].value + return self.__getitem__(k) except KeyError: return default diff --git a/tests/test-lrucachedict.py b/tests/test-lrucachedict.py --- a/tests/test-lrucachedict.py +++ b/tests/test-lrucachedict.py @@ -67,6 +67,18 @@ for key in ('a', 'b'): self.assertIn(key, d) + def testget(self): + d = util.lrucachedict(4) + d['a'] = 'va' + d['b'] = 'vb' + d['c'] = 'vc' + + self.assertIsNone(d.get('missing')) + self.assertEqual(list(d), ['c', 'b', 'a']) + + self.assertEqual(d.get('a'), 'va') + self.assertEqual(list(d), ['a', 'c', 'b']) + def testcopypartial(self): d = util.lrucachedict(4) d.insert('a', 'va', cost=4)