[PATCH 2 of 3 evolve-ext-V2] evolve: add a more complex test for evolve --rev
Laurent Charignon
lcharignon at fb.com
Wed Jun 3 16:04:47 CDT 2015
# HG changeset patch
# User Laurent Charignon <lcharignon at fb.com>
# Date 1433283830 25200
# Tue Jun 02 15:23:50 2015 -0700
# Node ID 6879fbece398d989eb4473b7f3067b2d10f7d6ee
# Parent 16e32f9b706fa06a5a3c88e8a26139bfd128f4bf
evolve: add a more complex test for evolve --rev
The previous tests of evolve --rev would have passed with an ordering of revs
by increasing revision numbers. This patch adds a test that would fail if that
was what we were doing and therefore tests the implementation better.
diff --git a/tests/test-evolve.t b/tests/test-evolve.t
--- a/tests/test-evolve.t
+++ b/tests/test-evolve.t
@@ -22,10 +22,24 @@
> hg ci -m "add $1"
> }
+ $ mkstack() {
+ > # Creates a stack of commit based on $1 with messages from $2, $3 ..
+ > hg update $1 -C
+ > mkcommits "${*:2}"
+ > }
+
$ glog() {
> hg glog --template '{rev}:{node|short}@{branch}({phase}) {desc|firstline}\n' "$@"
> }
+ $ shaof() {
+ > hg log -T {node} -r "first(desc($1))"
+ > }
+
+ $ mkcommits() {
+ > for i in $@; do mkcommit $i ; done
+ > }
+
various init
$ hg init local
@@ -1080,3 +1094,65 @@
atop:[26] add j2
working directory is now at 928e4c317356
+Cleanup to make the tree cleaner
+
+ $ hg prune 20
+ 1 changesets pruned
+ $ hg prune 26::
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ working directory now at 4c0bc042ef3b
+ 2 changesets pruned
+
+evolve --rev reorders the rev to solve instability. Harder case, obsolescence
+accross three stacks in growing rev numbers.
+ $ hg up -C 25
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ mkstack 25 s1_ s2_ s3_ >/dev/null
+ $ mkstack 25 s1prime s2prime >/dev/null
+ $ mkstack 25 s1second >/dev/null
+ $ hg prune `shaof s1_` -s `shaof s1prime`
+ 1 changesets pruned
+ 2 new unstable changesets
+ $ hg prune `shaof s1prime` -s `shaof s1second`
+ 1 changesets pruned
+ 1 new unstable changesets
+ $ hg prune `shaof s2_` -s `shaof s2prime`
+ 1 changesets pruned
+
+ $ glog -r "25::"
+ @ 33:17b5b6ab3f43 at default(draft) add s1second
+ |
+ | o 32:d694d85de729 at default(draft) add s2prime
+ | |
+ | x 31:1ae988394dc5 at default(draft) add s1prime
+ |/
+ | o 30:819245647e79 at default(draft) add s3_
+ | |
+ | x 29:07a5fc5c1502 at default(draft) add s2_
+ | |
+ | x 28:5ccaf4765b80 at default(draft) add s1_
+ |/
+ o 25:4c0bc042ef3b at default(draft) add j1
+ |
+
+ $ hg evolve --rev "25::"
+ move:[32] add s2prime
+ atop:[33] add s1second
+ move:[30] add s3_
+ atop:[34] add s2prime
+ working directory is now at dc79646e43b4
+ $ glog -r "25::"
+ @ 35:dc79646e43b4 at default(draft) add s3_
+ |
+ o 34:96f3ff6b7106 at default(draft) add s2prime
+ |
+ o 33:17b5b6ab3f43 at default(draft) add s1second
+ |
+ o 25:4c0bc042ef3b at default(draft) add j1
+ |
+
+ $ hg prune 33::
+ 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ working directory now at 4c0bc042ef3b
+ 3 changesets pruned
+
More information about the Mercurial-devel
mailing list