[PATCH evolve-ext] split: avoid trying to split an empty commit (issue5191)

Philippe Pepiot phil at philpep.org
Sat Oct 8 13:50:45 UTC 2016


# HG changeset patch
# User Philippe Pepiot <philippe.pepiot at logilab.fr>
# Date 1475934552 -7200
#      Sat Oct 08 15:49:12 2016 +0200
# Node ID 1ef723b6fdfb8f940e0e1a82f2936917e7d4e23f
# Parent  5383671ef612a1764bbbed13a7ef2d339d0a9c2d
split: avoid trying to split an empty commit (issue5191)

diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -2932,11 +2932,12 @@ def cmdsplit(ui, repo, *revs, **opts):
             else:
                 ui.status(_("no more change to split\n"))
 
-        tip = repo[newcommits[-1]]
-        bmupdate(tip.node())
-        if bookactive is not None:
-            bmactivate(repo, bookactive)
-        obsolete.createmarkers(repo, [(repo[r], newcommits)])
+        if newcommits:
+            tip = repo[newcommits[-1]]
+            bmupdate(tip.node())
+            if bookactive is not None:
+                bmactivate(repo, bookactive)
+            obsolete.createmarkers(repo, [(repo[r], newcommits)])
         tr.close()
     finally:
         lockmod.release(tr, lock, wlock)
diff --git a/tests/test-split.t b/tests/test-split.t
--- a/tests/test-split.t
+++ b/tests/test-split.t
@@ -378,3 +378,10 @@ Running split with both unnamed and name
   (use either `hg split <rs>` or `hg split --rev <rs>`, not both)
   [255]
 
+Split empty commit (issue5191)
+  $ hg branch new-branch
+  marked working directory as branch new-branch
+  (branches are permanent and global, did you want a bookmark?)
+  $ hg commit -m "empty"
+  $ hg split
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved


More information about the Mercurial-devel mailing list