[PATCH 2 of 2 evolve-ext] evolve: handle split commit for instability
Laurent Charignon
lcharignon at fb.com
Fri Aug 7 19:51:59 UTC 2015
# HG changeset patch
# User Laurent Charignon <lcharignon at fb.com>
# Date 1435188456 25200
# Wed Jun 24 16:27:36 2015 -0700
# Node ID 112cc29c1277198c4cf91215f09c83c22f4a9153
# Parent 7cea5faac1e6ea3cc15a46684947b0fe47dfa2ab
evolve: handle split commit for instability
diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -1708,10 +1708,17 @@ def _solveunstable(ui, repo, orig, dryru
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:
diff --git a/tests/test-evolve-split.t b/tests/test-evolve-split.t
--- a/tests/test-evolve-split.t
+++ b/tests/test-evolve-split.t
@@ -58,4 +58,6 @@ Create a split commit
o 0:58663bb03074 at default(draft) add aa
$ hg evolve --rev "0::"
- does not handle split parents yet
+ move:[2] add uu
+ atop:[4] _pp
+ working directory is now at 6f5bbe2e3df3
diff --git a/tests/test-evolve.t b/tests/test-evolve.t
--- a/tests/test-evolve.t
+++ b/tests/test-evolve.t
@@ -1393,6 +1393,8 @@ Create a split commit
o 18:0bb66d4c1968 at default(draft) a3
|
$ hg evolve --rev "18::"
- does not handle split parents yet
+ move:[33] add uu
+ atop:[35] _pp
+ working directory is now at 04fae07745d4
diff --git a/tests/test-unstable.t b/tests/test-unstable.t
--- a/tests/test-unstable.t
+++ b/tests/test-unstable.t
@@ -182,7 +182,6 @@ Not supported yet
===============================================================================
Test instability resolution for a changeset unstable because its parent
is obsolete with multiple successors all in one chain (simple split)
-Not supported yet
==============================================================================
$ hg init test4
@@ -208,16 +207,16 @@ Not supported yet
$ hg evo --all --any --unstable
- does not handle split parents yet
+ move:[2] add _c
+ atop:[4] add bprimesplit2
+ working directory is now at 387cc1e837d7
$ hg log -G
- @ 4:2a4ccc0bb20c at default(draft) add bprimesplit2
+ @ 5:387cc1e837d7 at default(draft) add _c
+ |
+ o 4:2a4ccc0bb20c at default(draft) add bprimesplit2
|
o 3:8b87864bd0f4 at default(draft) add bprimesplit1
|
- | o 2:102002290587 at default(draft) add _c
- | |
- | x 1:37445b16603b at default(draft) add _b
- |/
o 0:135f39f4bd78 at default(draft) add _a
@@ -228,7 +227,6 @@ Not supported yet
Test instability resolution for a changeset unstable because its parent
is obsolete with multiple successors on one branches but in reverse
order (cross-split).
-Not supported yet
==============================================================================
$ hg init test5
@@ -263,16 +261,16 @@ Not supported yet
$ hg evo --all --any --unstable
- does not handle split parents yet
+ move:[2] add _c
+ atop:[6] add bsecondsplit2
+ working directory is now at 98e3f21461ff
$ hg log -G
- @ 6:59b942dbda14 at default(draft) add bsecondsplit2
+ @ 7:98e3f21461ff at default(draft) add _c
+ |
+ o 6:59b942dbda14 at default(draft) add bsecondsplit2
|
o 5:8ffdae67d696 at default(draft) add bsecondsplit1
|
- | o 2:102002290587 at default(draft) add _c
- | |
- | x 1:37445b16603b at default(draft) add _b
- |/
o 0:135f39f4bd78 at default(draft) add _a
@@ -312,7 +310,7 @@ Not supported yet
$ hg evo --all --any --unstable
- does not handle split parents yet
+ cannot solve split accross two branches
$ hg log -G
@ 4:3c69ea6aa93e at default(draft) add bprimesplit2
|
More information about the Mercurial-devel
mailing list