hgext/rebase.py
changeset 27746 f0e9f38d250f
parent 27745 d3a128e8604a
child 27790 2d294dada4f8
--- a/hgext/rebase.py	Wed Jan 06 12:55:56 2016 -0800
+++ b/hgext/rebase.py	Tue Jan 12 13:43:41 2016 -0800
@@ -350,6 +350,17 @@
                                                                 dest)
                 rebaseobsskipped = set(obsoletenotrebased)
 
+                # Obsolete node with successors not in dest leads to divergence
+                divergenceok = ui.configbool('rebase',
+                                             'allowdivergence')
+                divergencebasecandidates = rebaseobsrevs - rebaseobsskipped
+
+                if divergencebasecandidates and not divergenceok:
+                    msg = _("this rebase will cause divergence")
+                    h = _("to force the rebase please set "
+                          "rebase.allowdivergence=True")
+                    raise error.Abort(msg, hint=h)
+
                 # - plain prune (no successor) changesets are rebased
                 # - split changesets are not rebased if at least one of the
                 # changeset resulting from the split is an ancestor of dest