mercurial/obsolete.py
changeset 32749 c8177792fef6
parent 32712 9576974a3b6d
child 32794 5ffb138d7b1a
--- a/mercurial/obsolete.py	Thu Jun 08 22:18:17 2017 -0700
+++ b/mercurial/obsolete.py	Thu Jun 08 21:54:30 2017 -0700
@@ -753,6 +753,22 @@
             seennodes |= pendingnodes
         return seenmarkers
 
+def makestore(ui, repo):
+    """Create an obsstore instance from a repo."""
+    # read default format for new obsstore.
+    # developer config: format.obsstore-version
+    defaultformat = ui.configint('format', 'obsstore-version', None)
+    # rely on obsstore class default when possible.
+    kwargs = {}
+    if defaultformat is not None:
+        kwargs['defaultformat'] = defaultformat
+    readonly = not isenabled(repo, createmarkersopt)
+    store = obsstore(repo.svfs, readonly=readonly, **kwargs)
+    if store and readonly:
+        ui.warn(_('obsolete feature not enabled but %i markers found!\n')
+                % len(list(store)))
+    return store
+
 def _filterprunes(markers):
     """return a set with no prune markers"""
     return set(m for m in markers if m[1])