hgext3rd/evolve/rewriteutil.py
branchstable
changeset 4841 95d2b5440731
parent 4723 41885988921e
child 4845 6f5d3f58fbe4
--- a/hgext3rd/evolve/rewriteutil.py	Sat Sep 07 13:03:29 2019 +0700
+++ b/hgext3rd/evolve/rewriteutil.py	Tue Sep 10 15:43:20 2019 +0700
@@ -117,6 +117,13 @@
     if len(baseparents) > 2:
         raise error.Abort(_("cannot fold revisions that merge with more than "
                             "one external changeset (not in revisions)"))
+    if not repo.ui.configbool('experimental', 'evolution.allowdivergence'):
+        obsolete = repo.revs('%ld and obsolete()', revs)
+        if obsolete:
+            msg = _('folding obsolete revisions may cause divergence')
+            hint = _('set experimental.evolution.allowdivergence=yes'
+                     ' to allow folding them')
+            raise error.Abort(msg, hint=hint)
     # root's p1 is already used as the target ctx p1
     baseparents -= {root.p1().rev()}
     p2 = repo[baseparents.first()]