hgext/evolve.py
changeset 1481 3c0aebe73482
parent 1478 9603aa1ecdfd
child 1484 e3484e9632cd
--- a/hgext/evolve.py	Fri Aug 07 13:59:19 2015 -0700
+++ b/hgext/evolve.py	Wed Jun 24 16:27:36 2015 -0700
@@ -1708,10 +1708,17 @@
     targets = newer[0]
     assert targets
     if len(targets) > 1:
-        msg = _("does not handle split parents yet\n")
-        ui.write_err(msg)
-        return 2
-    target = targets[0]
+        # split target, figure out which one to pick, are they all in line?
+        targetrevs = [repo[r].rev() for r in targets]
+        roots = repo.revs('roots(%ld)', targetrevs)
+        heads = repo.revs('heads(%ld)', targetrevs)
+        if len(roots) > 1 or len(heads) > 1:
+            msg = "cannot solve split accross two branches\n"
+            ui.write_err(msg)
+            return 2
+        target = repo[heads.first()]
+    else:
+        target = targets[0]
     displayer = cmdutil.show_changeset(ui, repo, {'template': shorttemplate})
     target = repo[target]
     if not ui.quiet or confirm: