diff hgext/split.py @ 46924:ca0049946e9a

split: avoid strip if split is a no-op (identical to original) Differential Revision: https://phab.mercurial-scm.org/D10389
author Kyle Lippincott <spectral@google.com>
date Mon, 12 Apr 2021 19:25:34 -0700
parents 8ee1ac083ee7
children 5ced12cfa41b
line wrap: on
line diff
--- a/hgext/split.py	Mon Apr 12 17:52:46 2021 -0700
+++ b/hgext/split.py	Mon Apr 12 19:25:34 2021 -0700
@@ -182,12 +182,15 @@
     if not committed:
         raise error.InputError(_(b'cannot split an empty revision'))
 
-    scmutil.cleanupnodes(
-        repo,
-        {ctx.node(): [c.node() for c in committed]},
-        operation=b'split',
-        fixphase=True,
-    )
+    if len(committed) != 1 or committed[0].node() != ctx.node():
+        # Ensure we don't strip a node if we produce the same commit as already
+        # exists
+        scmutil.cleanupnodes(
+            repo,
+            {ctx.node(): [c.node() for c in committed]},
+            operation=b'split',
+            fixphase=True,
+        )
 
     return committed[-1]