changeset 22951:6c86c673dde6

obsolete: add createmarkers option The basic obsolete option is allowing the creation of obsolete markers. This does not enable other features, such as allowing unstable commits or exchanging obsolete markers.
author Durham Goode <durham@fb.com>
date Tue, 14 Oct 2014 13:23:52 -0700
parents bb8278b289ee
children 8792ac090e3b
files hgext/histedit.py hgext/rebase.py mercurial/cmdutil.py mercurial/localrepo.py mercurial/obsolete.py
diffstat 5 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/histedit.py	Tue Oct 14 13:20:31 2014 -0700
+++ b/hgext/histedit.py	Tue Oct 14 13:23:52 2014 -0700
@@ -640,7 +640,7 @@
         if mapping:
             movebookmarks(ui, repo, mapping, topmost, ntm)
             # TODO update mq state
-        if obsolete._enabled:
+        if obsolete.isenabled(repo, obsolete.createmarkersopt):
             markers = []
             # sort by revision number because it sound "right"
             for prec in sorted(mapping, key=repo.changelog.rev):
--- a/hgext/rebase.py	Tue Oct 14 13:20:31 2014 -0700
+++ b/hgext/rebase.py	Tue Oct 14 13:23:52 2014 -0700
@@ -928,7 +928,7 @@
 
     If `collapsedas` is not None, the rebase was a collapse whose result if the
     `collapsedas` node."""
-    if obsolete._enabled:
+    if obsolete.isenabled(repo, obsolete.createmarkersopt):
         markers = []
         for rev, newrev in sorted(state.items()):
             if newrev >= 0:
--- a/mercurial/cmdutil.py	Tue Oct 14 13:20:31 2014 -0700
+++ b/mercurial/cmdutil.py	Tue Oct 14 13:23:52 2014 -0700
@@ -2283,7 +2283,8 @@
                         marks[bm] = newid
                     marks.write()
             #commit the whole amend process
-            if obsolete._enabled and newid != old.node():
+            createmarkers = obsolete.isenabled(repo, obsolete.createmarkersopt)
+            if createmarkers and newid != old.node():
                 # mark the new changeset as successor of the rewritten one
                 new = repo[newid]
                 obs = [(old, (new,))]
@@ -2294,7 +2295,7 @@
             tr.close()
         finally:
             tr.release()
-        if (not obsolete._enabled) and newid != old.node():
+        if not createmarkers and newid != old.node():
             # Strip the intermediate commit (if there was one) and the amended
             # commit
             if node:
--- a/mercurial/localrepo.py	Tue Oct 14 13:20:31 2014 -0700
+++ b/mercurial/localrepo.py	Tue Oct 14 13:23:52 2014 -0700
@@ -406,9 +406,10 @@
         kwargs = {}
         if defaultformat is not None:
             kwargs['defaultformat'] = defaultformat
-        store = obsolete.obsstore(self.sopener, readonly=not obsolete._enabled,
+        readonly = not obsolete.isenabled(self, obsolete.createmarkersopt)
+        store = obsolete.obsstore(self.sopener, readonly=readonly,
                                   **kwargs)
-        if store and not obsolete._enabled:
+        if store and readonly:
             # message is rare enough to not be translated
             msg = 'obsolete feature not enabled but %i markers found!\n'
             self.ui.warn(msg % len(list(store)))
--- a/mercurial/obsolete.py	Tue Oct 14 13:20:31 2014 -0700
+++ b/mercurial/obsolete.py	Tue Oct 14 13:23:52 2014 -0700
@@ -81,6 +81,9 @@
 # you have to rely on third party extension extension to enable this.
 _enabled = False
 
+# Options for obsolescence
+createmarkersopt = 'createmarkers'
+
 ### obsolescence marker flag
 
 ## bumpedfix flag