tests/test-fold.t
author Anton Shestakov <av6@dwimlabs.net>
Fri, 08 May 2020 22:18:15 +0800
branchmercurial-4.7
changeset 5367 cb5983c0287f
parent 5162 a7fb433faab6
parent 5349 e8660b28bfee
permissions -rw-r--r--
test-compat: merge mercurial-4.8 into mercurial-4.7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
  $ . $TESTDIR/testlib/common.sh
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
setup
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
  $ cat >> $HGRCPATH <<EOF
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
  > [defaults]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
  > fold=-d "0 0"
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
  > [extensions]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
  > evolve=
4723
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    10
  > [alias]
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    11
  > glog = log -GT "{rev}: {desc}"
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    12
  > glf = log -GT "{rev}: {desc} ({files})"
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
  > [ui]
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
    14
  > logtemplate = '{rev} - {node|short} {desc|firstline} [{author}] ({phase}) {bookmarks}\n'
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
  > EOF
4723
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    16
  $ mkcommit() {
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    17
  >    echo "$1" > "$1"
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    18
  >    hg add "$1"
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    19
  >    hg ci -qm "$1"
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
    20
  > }
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
  $ hg init fold-tests
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
  $ cd fold-tests/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
  $ hg debugbuilddag .+3:branchpoint+4*branchpoint+2
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  $ hg up 'desc("r7")'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
    27
  $ hg bookmark bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
  $ hg log -G
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
  o  10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  o  9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
  o  8 - abf57d94268b r8 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
  |
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
    35
  | @  7 - 4de32a90b66c r7 [debugbuilddag] (draft) bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
  | o  6 - f69452c5b1af r6 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
  | o  5 - c8d03c1b5e94 r5 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
  | o  4 - bebd167eb94d r4 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
  |/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
  o  0 - 1ea73414a91b r0 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
  
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
Test various error case
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
2785
b5a48e4aeec6 precheck: handle rewrite attempt of nullrev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2784
diff changeset
    54
  $ hg fold --exact null::
b5a48e4aeec6 precheck: handle rewrite attempt of nullrev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2784
diff changeset
    55
  abort: cannot fold the null revision
b5a48e4aeec6 precheck: handle rewrite attempt of nullrev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2784
diff changeset
    56
  (no changeset checked out)
b5a48e4aeec6 precheck: handle rewrite attempt of nullrev
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2784
diff changeset
    57
  [255]
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  $ hg fold
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  abort: no revisions specified
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  $ hg fold --from
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  abort: no revisions specified
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  $ hg fold .
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  abort: must specify either --from or --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  $ hg fold --from . --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  abort: cannot use both --from and --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  $ hg fold --from .
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  single revision specified, nothing to fold
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  [1]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
  $ hg fold '0::(7+10)' --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
  abort: cannot fold non-linear revisions (multiple heads given)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
  $ hg fold -r 4 -r 6 --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
  abort: cannot fold non-linear revisions (multiple roots given)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
  $ hg fold --from 10 1
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
  abort: cannot fold non-linear revisions
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  (given revisions are unrelated to parent of working directory)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  $ hg fold --exact -r "4 and not 4"
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
  abort: specified revisions evaluate to an empty set
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
  (use different revision arguments)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
  $ hg phase --public 0
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  $ hg fold --from -r 0
2780
58e4b51ee902 prefetc: point at the offending changeset when aborting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2779
diff changeset
    89
  abort: cannot fold public changesets: 1ea73414a91b
2779
f51efb2bb8c9 precheck: point to 'phase' help when aborting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2778
diff changeset
    90
  (see 'hg help phases' for details)
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
Test actual folding
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
  $ hg fold --from -r 'desc("r5")'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
  3 changesets folded
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5113
a66c9fc9c503 fold: actually track folds using fold-* metadata in obsmarkers
Anton Shestakov <av6@dwimlabs.net>
parents: 5079
diff changeset
    98
  $ hg debugobsolete -r 'desc("r5")' --exclusive
5162
a7fb433faab6 test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
    99
  4de32a90b66cd083ebf3c00b41277aa7abca51dd 198b5c405d01a50c41a81a00fc61677b81981a5f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '37', 'operation': 'fold', 'user': 'test'}
a7fb433faab6 test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   100
  c8d03c1b5e94af74b772900c58259d2e08917735 198b5c405d01a50c41a81a00fc61677b81981a5f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '33', 'operation': 'fold', 'user': 'test'}
a7fb433faab6 test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   101
  f69452c5b1af6cbaaa56ef50cf94fff5bcc6ca23 198b5c405d01a50c41a81a00fc61677b81981a5f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '37', 'operation': 'fold', 'user': 'test'}
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
5349
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   103
  $ hg obslog --no-origin
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   104
  @    198b5c405d01 (11) r5
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   105
  |\
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   106
  | \
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   107
  | |\
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   108
  x | |  4de32a90b66c (7) r7
5367
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   109
   / /     rewritten(description, date, parent) as 198b5c405d01 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
5349
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   110
  | |
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   111
  x |  c8d03c1b5e94 (5) r5
5367
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   112
   /     rewritten(description, date) as 198b5c405d01 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
5349
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   113
  |
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   114
  x  f69452c5b1af (6) r6
5367
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   115
       rewritten(description, date, parent) as 198b5c405d01 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
5349
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   116
  
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   117
  $ hg obslog
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   118
  @    198b5c405d01 (11) r5
5367
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   119
  |\     rewritten(description, date, parent) from 4de32a90b66c using fold by test (Thu Jan 01 00:00:00 1970 +0000)
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   120
  | |    rewritten(description, date) from c8d03c1b5e94 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
cb5983c0287f test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net>
parents: 5162 5349
diff changeset
   121
  | |    rewritten(description, date, parent) from f69452c5b1af using fold by test (Thu Jan 01 00:00:00 1970 +0000)
5349
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   122
  | |
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   123
  | \
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   124
  | |\
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   125
  x | |  4de32a90b66c (7) r7
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   126
   / /
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   127
  x /  c8d03c1b5e94 (5) r5
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   128
   /
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   129
  x  f69452c5b1af (6) r6
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   130
  
e8660b28bfee obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net>
parents: 5113
diff changeset
   131
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   132
Checking whether the bookmarks are moved or not
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   133
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   134
  $ hg log -G
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   135
  @  11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   136
  |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   137
  | o  10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   138
  | |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   139
  | o  9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   140
  | |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   141
  | o  8 - abf57d94268b r8 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   142
  | |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   143
  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   144
  |/
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   145
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   146
  |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   147
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   148
  |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   149
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   150
  |
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   151
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   152
  
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   153
(test inherited from test-evolve.t)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   154
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   155
  $ hg fold --from 6 # want to run hg fold 6
3663
54a469cd5b26 test: update output to match upstream
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3451
diff changeset
   156
  abort: hidden revision '6' was rewritten as: 198b5c405d01!
54a469cd5b26 test: update output to match upstream
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3451
diff changeset
   157
  (use --hidden to access hidden revisions)
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   158
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   159
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   160
  $ hg log -G
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   161
  @  11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   162
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   163
  | o  10 - a8407f9a3dc1 r10 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   164
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   165
  | o  9 - 529dfc5bb875 r9 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   166
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   167
  | o  8 - abf57d94268b r8 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   168
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   169
  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   170
  |/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   171
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   172
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   173
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   174
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   175
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   176
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   177
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   178
  
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   179
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   180
test fold --exact
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   181
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   182
  $ hg fold --exact 'desc("r8") + desc("r10")'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   183
  abort: cannot fold non-linear revisions (multiple roots given)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   184
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   185
  $ hg fold --exact 'desc("r8")::desc("r10")'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   186
  3 changesets folded
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   187
  $ hg log -G
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   188
  o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   189
  |
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   190
  | @  11 - 198b5c405d01 r5 [debugbuilddag] (draft) bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   191
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   192
  | o  4 - bebd167eb94d r4 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   193
  |/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   194
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   195
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   196
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   197
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   198
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   199
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   200
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   201
  
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   202
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   203
Test allow unstable
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   204
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   205
  $ echo a > a
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   206
  $ hg add a
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   207
  $ hg commit '-m r11'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   208
  $ hg up '.^'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   209
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   210
  (leaving bookmark bm1)
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   211
  $ hg log -G
3450
a8596ac13fe8 tests: add a test showing bookmark not moving in-case of `hg fold`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2785
diff changeset
   212
  o  13 - 14d0e0da8e91 r11 [test] (draft) bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   213
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   214
  | o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   215
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   216
  @ |  11 - 198b5c405d01 r5 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   217
  | |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   218
  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   219
  |/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   220
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   221
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   222
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   223
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   224
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   225
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   226
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   227
  
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   228
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   229
  $ cat << EOF >> .hg/hgrc
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   230
  > [experimental]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   231
  > evolution = createmarkers, allnewcommands
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   232
  > EOF
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   233
  $ hg fold --from 'desc("r4")'
2784
d17d193c4145 precheck: update the orphan message to something me generic
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2783
diff changeset
   234
  abort: fold will orphan 1 descendants
2783
3e9c3119410a precheck: point to the instability doc when aborting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2780
diff changeset
   235
  (see 'hg help evolution.instability')
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   236
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   237
  $ hg fold --from 'desc("r3")::desc("r11")'
2784
d17d193c4145 precheck: update the orphan message to something me generic
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2783
diff changeset
   238
  abort: fold will orphan 1 descendants
2783
3e9c3119410a precheck: point to the instability doc when aborting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2780
diff changeset
   239
  (see 'hg help evolution.instability')
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   240
  [255]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   241
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   242
test --user variant
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   243
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   244
  $ cat << EOF >> .hg/hgrc
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   245
  > [experimental]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   246
  > evolution = createmarkers, allnewcommands
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   247
  > EOF
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   248
  $ cat << EOF >> .hg/hgrc
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   249
  > [experimental]
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   250
  > evolution = all
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   251
  > EOF
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   252
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   253
  $ hg fold --exact 'desc("r5") + desc("r11")' --user 'Victor Rataxes <victor@rhino.savannah>'
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   254
  2 changesets folded
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   255
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   256
  $ hg log -G
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   257
  @  14 - 29b470a33594 r5 [Victor Rataxes <victor@rhino.savannah>] (draft) bm1
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   258
  |
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   259
  | o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   260
  | |
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   261
  o |  4 - bebd167eb94d r4 [debugbuilddag] (draft)
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   262
  |/
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   263
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   264
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   265
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   266
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   267
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   268
  |
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   269
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   270
  
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   271
2768
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   272
  $ hg fold --from 'desc("r4")' -U
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   273
  2 changesets folded
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   274
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   275
  $ hg log -G
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   276
  @  15 - 91880abed0f2 r4 [test] (draft) bm1
2768
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   277
  |
3451
f062a4719e46 fold: make sure we move bookmarks after folding (issue5772)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 3450
diff changeset
   278
  | o  12 - b568edbee6e0 r8 [debugbuilddag] (draft)
2768
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   279
  |/
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   280
  o  3 - 2dc09a01254d r3 [debugbuilddag] (draft)
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   281
  |
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   282
  o  2 - 01241442b3c2 r2 [debugbuilddag] (draft)
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   283
  |
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   284
  o  1 - 66f7d451a68b r1 [debugbuilddag] (draft)
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   285
  |
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   286
  o  0 - 1ea73414a91b r0 [debugbuilddag] (public)
85e5a56db776 fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2767
diff changeset
   287
  
4340
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   288
Test order of proposed commit message
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   289
4832
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   290
  $ hg fold --exact --hidden -r 4 -r 5 -r 6 \
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   291
  >         --config experimental.evolution.allowdivergence=yes
4340
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   292
  2 new content-divergent changesets
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   293
  3 changesets folded
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   294
  $ hg log -r tip -T '{desc}'
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   295
  r4
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   296
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   297
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   298
  r5
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   299
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   300
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   301
  r6 (no-eol)
4832
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   302
  $ hg fold --exact --hidden -r 6 -r 4 -r 5 \
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   303
  >         --config experimental.evolution.allowdivergence=yes
4340
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   304
  3 changesets folded
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   305
  $ hg log -r tip -T '{desc}'
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   306
  r4
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   307
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   308
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   309
  r5
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   310
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   311
  
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   312
  r6 (no-eol)
5300be965515 fold: sort concatenated commit messages in topological order
Martin von Zweigbergk <martinvonz@google.com>
parents: 3663
diff changeset
   313
2767
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   314
  $ cd ..
ab80ef8d0cfa test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   315
4723
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   316
One merge commit
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   317
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   318
  $ hg init fold-a-merge
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   319
  $ cd fold-a-merge
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   320
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   321
  $ mkcommit zebra
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   322
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   323
  $ hg up null
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   324
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   325
  $ mkcommit apple
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   326
  $ mkcommit banana
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   327
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   328
  $ hg merge
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   329
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   330
  (branch merge, don't forget to commit)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   331
  $ hg ci -m merge
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   332
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   333
  $ mkcommit coconut
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   334
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   335
  $ hg glf
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   336
  @  4: coconut (coconut)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   337
  |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   338
  o    3: merge ()
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   339
  |\
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   340
  | o  2: banana (banana)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   341
  | |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   342
  | o  1: apple (apple)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   343
  |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   344
  o  0: zebra (zebra)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   345
  
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   346
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   347
now we merge some of the fruits
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   348
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   349
  $ hg fold --exact -r 'desc("banana")::desc("coconut")' -m 'banana+coconut in a merge with zebra'
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   350
  3 changesets folded
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   351
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   352
  $ hg glf
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   353
  @    5: banana+coconut in a merge with zebra (banana coconut)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   354
  |\
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   355
  | o  1: apple (apple)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   356
  |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   357
  o  0: zebra (zebra)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   358
  
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   359
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   360
let's go even further: zebra becomes a parent of the squashed fruit commit
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   361
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   362
  $ hg fold --from -r 'desc("apple")' -m 'apple+banana+coconut is a child of zebra'
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   363
  2 changesets folded
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   364
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   365
  $ hg glf
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   366
  @  6: apple+banana+coconut is a child of zebra (apple banana coconut)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   367
  |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   368
  o  0: zebra (zebra)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   369
  
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   370
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   371
make sure zebra exists at tip and has expected contents
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   372
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   373
  $ hg cat -r tip zebra
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   374
  zebra
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   375
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   376
  $ cd ..
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   377
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   378
Multiple merge commits
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   379
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   380
  $ hg init fold-many-merges
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   381
  $ cd fold-many-merges
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   382
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   383
  $ hg debugbuilddag '+3 *3 /3 /4 /4'
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   384
  $ hg glog
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   385
  o    6: r6
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   386
  |\
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   387
  | o    5: r5
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   388
  | |\
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   389
  | | o  4: r4
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   390
  | |/|
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   391
  | | o  3: r3
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   392
  | | |
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   393
  o | |  2: r2
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   394
  |/ /
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   395
  o /  1: r1
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   396
  |/
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   397
  o  0: r0
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   398
  
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   399
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   400
cannot fold 5 and 6 because they have 3 external parents in total: 1, 2, 4
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   401
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   402
  $ hg fold --exact -r 5:6 -m r5+r6
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   403
  abort: cannot fold revisions that merge with more than one external changeset (not in revisions)
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   404
  [255]
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   405
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   406
now many of the parents are included in the revisions to fold, only 0 and 3 are external
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   407
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   408
  $ hg fold --exact -r 1+2+4+5+6 -m r1+r2+r4+r5+r6
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   409
  5 changesets folded
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   410
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   411
  $ hg glog
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   412
  o    7: r1+r2+r4+r5+r6
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   413
  |\
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   414
  | o  3: r3
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   415
  |/
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   416
  o  0: r0
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   417
  
41885988921e fold: allow operations on merge commits with some conditions
Anton Shestakov <av6@dwimlabs.net>
parents: 4340
diff changeset
   418
  $ cd ..
4831
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   419
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   420
Fold should respect experimental.evolution.allowdivergence option
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   421
https://bz.mercurial-scm.org/show_bug.cgi?id=5817
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   422
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   423
  $ hg init issue5817
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   424
  $ cd issue5817
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   425
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   426
  $ echo A > foo
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   427
  $ hg ci -qAm A
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   428
  $ echo B > foo
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   429
  $ hg ci -m B
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   430
  $ echo C > foo
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   431
  $ hg ci -m C
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   432
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   433
  $ hg fold --exact -r 'desc("A")::desc("B")' -m 'first fold'
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   434
  1 new orphan changesets
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   435
  2 changesets folded
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   436
4832
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   437
fold aborts here because divergence is not allowed
4831
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   438
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   439
  $ hg fold --exact -r 'desc("A")::desc("B")' -m 'second fold' \
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   440
  >         --config experimental.evolution.allowdivergence=no
5079
1f92a6aa40d6 evolve: add pre-check logic for content-divergence in rewriteutil.precheck()
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 4832
diff changeset
   441
  abort: fold of 4b34ecfb0d56 creates content-divergence with fcfd42a7fa46
1f92a6aa40d6 evolve: add pre-check logic for content-divergence in rewriteutil.precheck()
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 4832
diff changeset
   442
  (add --verbose for details or see 'hg help evolution.instability')
4832
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   443
  [255]
4831
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   444
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   445
but if we allow divergence, this should work and should create new content-divergent changesets
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   446
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   447
  $ hg fold --exact -r 'desc("A")::desc("B")' -m 'second fold' \
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   448
  >         --config experimental.evolution.allowdivergence=yes
4832
8a491546e81d fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net>
parents: 4831
diff changeset
   449
  2 new content-divergent changesets
4831
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   450
  2 changesets folded
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   451
0852dcba82f6 tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net>
parents: 4723
diff changeset
   452
  $ cd ..