mercurial/rewriteutil.py
branchstable
changeset 48991 d4752aeb20f1
parent 47787 48da5c325750
child 48992 bde2e4ef968a
child 49060 532b649c1deb
--- a/mercurial/rewriteutil.py	Thu Mar 24 12:27:21 2022 -0400
+++ b/mercurial/rewriteutil.py	Fri Jul 23 13:42:12 2021 +0530
@@ -49,10 +49,13 @@
     return summary
 
 
-def precheck(repo, revs, action=b'rewrite'):
+def precheck(repo, revs, action=b'rewrite', check_divergence=True):
     """check if revs can be rewritten
     action is used to control the error message.
 
+    check_divergence allows skipping the divergence checks in cases like adding
+    a prune marker (A, ()) to obsstore (which can't be diverging).
+
     Make sure this function is called after taking the lock.
     """
     if nullrev in revs:
@@ -85,6 +88,9 @@
             hint=hint,
         )
 
+    if not check_divergence:
+        return
+
     if not obsolete.isenabled(repo, obsolete.allowdivergenceopt):
         new_divergence = _find_new_divergence(repo, revs)
         if new_divergence: