# HG changeset patch # User Jun Wu # Date 2017-06-03 03:38:01 # Node ID 3fad59faba8a4b233f278b09b02d4535619f4469 # Parent 9933410bf76342b6199edd93fda430441a6b22c9 obsstore: separate marker parsing from obsstore reading This allows us to get raw obsstore content without parsing any markers. Reading obsstore is much cheaper than parsing markers. diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -666,8 +666,12 @@ class obsstore(object): return self.add(transaction, markers) @propertycache + def _data(self): + return self.svfs.tryread('obsstore') + + @propertycache def _all(self): - data = self.svfs.tryread('obsstore') + data = self._data if not data: return [] self._version, markers = _readmarkers(data)