# HG changeset patch # User Sushil khanchi # Date 1627027932 -19800 # Node ID d4752aeb20f1f827d10ee0b877713de1a4e31c89 # Parent d9ed7c5e915d0958b9e33c0f2368dd32db336576 precheck: fix false warning about content-divergence creation Before this patch, if we try to `hg prune` (without any successors) an already obsoleted cset which has at least one successor, it would false warn about new content-divergence. As we know, pruning cset without any successors can not create any divergence. Differential Revision: https://phab.mercurial-scm.org/D12002 diff -r d9ed7c5e915d -r d4752aeb20f1 mercurial/rewriteutil.py --- 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: