--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-fold.t Sun Jul 23 16:39:21 2017 +0200
@@ -0,0 +1,204 @@
+ $ . $TESTDIR/testlib/common.sh
+
+setup
+
+ $ cat >> $HGRCPATH <<EOF
+ > [defaults]
+ > fold=-d "0 0"
+ > [extensions]
+ > evolve=
+ > [ui]
+ > logtemplate = '{rev} - {node|short} {desc|firstline} [{author}] ({phase})\n'
+ > EOF
+
+ $ hg init fold-tests
+ $ cd fold-tests/
+ $ hg debugbuilddag .+3:branchpoint+4*branchpoint+2
+ $ hg up 'desc("r7")'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg log -G
+ o 10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
+ |
+ o 9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
+ |
+ o 8 - abf57d94268b r8 [debugbuilddag] (draft)
+ |
+ | @ 7 - 4de32a90b66c r7 [debugbuilddag] (draft)
+ | |
+ | o 6 - f69452c5b1af r6 [debugbuilddag] (draft)
+ | |
+ | o 5 - c8d03c1b5e94 r5 [debugbuilddag] (draft)
+ | |
+ | o 4 - bebd167eb94d r4 [debugbuilddag] (draft)
+ |/
+ o 3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+ |
+ o 2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+ |
+ o 1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+ |
+ o 0 - 1ea73414a91b r0 [debugbuilddag] (draft)
+
+
+Test various error case
+
+ $ hg fold
+ abort: no revisions specified
+ [255]
+ $ hg fold --from
+ abort: no revisions specified
+ [255]
+ $ hg fold .
+ abort: must specify either --from or --exact
+ [255]
+ $ hg fold --from . --exact
+ abort: cannot use both --from and --exact
+ [255]
+ $ hg fold --from .
+ single revision specified, nothing to fold
+ [1]
+ $ hg fold '0::(7+10)' --exact
+ abort: cannot fold non-linear revisions (multiple heads given)
+ [255]
+ $ hg fold -r 4 -r 6 --exact
+ abort: cannot fold non-linear revisions (multiple roots given)
+ [255]
+ $ hg fold --from 10 1
+ abort: cannot fold non-linear revisions
+ (given revisions are unrelated to parent of working directory)
+ [255]
+ $ hg fold --exact -r "4 and not 4"
+ abort: specified revisions evaluate to an empty set
+ (use different revision arguments)
+ [255]
+ $ hg phase --public 0
+ $ hg fold --from -r 0
+ abort: cannot fold public revisions
+ [255]
+
+Test actual folding
+
+ $ hg fold --from -r 'desc("r5")'
+ 3 changesets folded
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+(test inherited from test-evolve.t)
+
+ $ hg fold --from 6 # want to run hg fold 6
+ abort: hidden revision '6'!
+ (use --hidden to access hidden revisions; successor: 198b5c405d01)
+ [255]
+
+ $ hg log -G
+ @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+ |
+ | o 10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
+ | |
+ | o 9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
+ | |
+ | o 8 - abf57d94268b r8 [debugbuilddag] (draft)
+ | |
+ o | 4 - bebd167eb94d r4 [debugbuilddag] (draft)
+ |/
+ o 3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+ |
+ o 2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+ |
+ o 1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+ |
+ o 0 - 1ea73414a91b r0 [debugbuilddag] (public)
+
+
+test fold --exact
+
+ $ hg fold --exact 'desc("r8") + desc("r10")'
+ abort: cannot fold non-linear revisions (multiple roots given)
+ [255]
+ $ hg fold --exact 'desc("r8")::desc("r10")'
+ 3 changesets folded
+ $ hg log -G
+ o 12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+ |
+ | @ 11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+ | |
+ | o 4 - bebd167eb94d r4 [debugbuilddag] (draft)
+ |/
+ o 3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+ |
+ o 2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+ |
+ o 1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+ |
+ o 0 - 1ea73414a91b r0 [debugbuilddag] (public)
+
+
+Test allow unstable
+
+ $ echo a > a
+ $ hg add a
+ $ hg commit '-m r11'
+ $ hg up '.^'
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg log -G
+ o 13 - 14d0e0da8e91 r11 [test] (draft)
+ |
+ | o 12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+ | |
+ @ | 11 - 198b5c405d01 r5 [debugbuilddag] (draft)
+ | |
+ o | 4 - bebd167eb94d r4 [debugbuilddag] (draft)
+ |/
+ o 3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+ |
+ o 2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+ |
+ o 1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+ |
+ o 0 - 1ea73414a91b r0 [debugbuilddag] (public)
+
+
+ $ cat << EOF >> .hg/hgrc
+ > [experimental]
+ > evolution = createmarkers, allnewcommands
+ > EOF
+ $ hg fold --from 'desc("r4")'
+ abort: cannot fold chain not ending with a head or with branching
+ (new unstable changesets are not allowed)
+ [255]
+ $ hg fold --from 'desc("r3")::desc("r11")'
+ abort: cannot fold chain not ending with a head or with branching
+ (new unstable changesets are not allowed)
+ [255]
+
+test --user variant
+
+ $ cat << EOF >> .hg/hgrc
+ > [experimental]
+ > evolution = createmarkers, allnewcommands
+ > EOF
+ $ cat << EOF >> .hg/hgrc
+ > [experimental]
+ > evolution = all
+ > EOF
+
+ $ hg fold --exact 'desc("r5") + desc("r11")' --user 'Victor Rataxes <victor@rhino.savannah>'
+ 2 changesets folded
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg log -G
+ @ 14 - 29b470a33594 r5 [Victor Rataxes <victor@rhino.savannah>] (draft)
+ |
+ | o 12 - b568edbee6e0 r8 [debugbuilddag] (draft)
+ | |
+ o | 4 - bebd167eb94d r4 [debugbuilddag] (draft)
+ |/
+ o 3 - 2dc09a01254d r3 [debugbuilddag] (draft)
+ |
+ o 2 - 01241442b3c2 r2 [debugbuilddag] (draft)
+ |
+ o 1 - 66f7d451a68b r1 [debugbuilddag] (draft)
+ |
+ o 0 - 1ea73414a91b r0 [debugbuilddag] (public)
+
+
+ $ cd ..
+