tests/test-evolve-split.t
author Anton Shestakov <av6@dwimlabs.net>
Fri, 08 May 2020 20:36:29 +0800
branchmercurial-5.0
changeset 5364 be5aa681c122
parent 5208 e0885e2abf59
permissions -rw-r--r--
test-compat: merge mercurial-5.1 into mercurial-5.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     1
Check that evolve shows error while handling split commits
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     2
--------------------------------------
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     3
  $ cat >> $HGRCPATH <<EOF
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     4
  > [defaults]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     5
  > amend=-d "0 0"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     6
  > fold=-d "0 0"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     7
  > [web]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     8
  > push_ssl = false
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
     9
  > allow_push = *
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    10
  > [phases]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    11
  > publish = False
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    12
  > [diff]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    13
  > git = 1
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    14
  > unified = 0
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    15
  > [ui]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    16
  > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    17
  > [extensions]
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    18
  > EOF
1806
9f42f819267b evolve: move the extensions to 'hgext3rd'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1481
diff changeset
    19
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    20
  $ mkcommit() {
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    21
  >    echo "$1" > "$1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    22
  >    hg add "$1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    23
  >    hg ci -m "add $1"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    24
  > }
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    25
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    26
  $ hg init split
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    27
  $ cd split
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    28
  $ mkcommit aa
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    29
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    30
Create a split commit
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    31
  $ printf "oo" > oo;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    32
  $ printf "pp" > pp;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    33
  $ hg add oo pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    34
  $ hg commit -m "oo+pp"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    35
  $ mkcommit uu
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    36
  $ hg up 0
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    37
  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    38
  $ printf "oo" > oo;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    39
  $ hg add oo
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    40
  $ hg commit -m "_oo"
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    41
  created new head
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    42
  $ printf "pp" > pp;
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    43
  $ hg add pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    44
  $ hg commit -m "_pp"
4763
184c64c81528 prune: spell --successor flag without any unnecessary shortcuts
Anton Shestakov <av6@dwimlabs.net>
parents: 4577
diff changeset
    45
  $ hg prune --successor "desc(_oo) + desc(_pp)" -r "desc('oo+pp')" --split
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    46
  1 changesets pruned
3013
945a0989e41b packaging: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3000
diff changeset
    47
  1 new orphan changesets
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    48
  $ hg log -G
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    49
  @  4:d0dcf24cddd3@default(draft) _pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    50
  |
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    51
  o  3:a7fdfda64c08@default(draft) _oo
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    52
  |
3417
d3a17c67f85c branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3411
diff changeset
    53
  | *  2:f52200b086ca@default(draft) add uu
1428
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    54
  | |
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    55
  | x  1:d55647aaa0c6@default(draft) oo+pp
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    56
  |/
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    57
  o  0:58663bb03074@default(draft) add aa
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    58
  
20a3b0b27bfe evolve: raise MultipleSuccessorsError when computing dependency for split commits
Laurent Charignon <lcharignon@fb.com>
parents:
diff changeset
    59
  $ hg evolve --rev "0::"
1481
3c0aebe73482 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com>
parents: 1471
diff changeset
    60
  move:[2] add uu
3c0aebe73482 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com>
parents: 1471
diff changeset
    61
  atop:[4] _pp
5206
dc3571a37b56 evolve: support ancestor of orphan split with unrelated changeset in between
Manuel Jacob <me@manueljacob.de>
parents: 4763
diff changeset
    62
5207
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    63
  $ cd ..
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    64
  $ hg init split-merged
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    65
  $ cd split-merged
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    66
  $ mkcommit aa
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    67
5208
e0885e2abf59 tests: merge two tests about split changesets
Manuel Jacob <me@manueljacob.de>
parents: 5207
diff changeset
    68
Split the changeset such that the successors don't have a single root and there's an unrelated changeset in between
5207
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    69
  $ printf "oo" > oo;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    70
  $ printf "pp" > pp;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    71
  $ printf "qq" > qq;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    72
  $ hg add oo pp qq
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    73
  $ hg commit -m "oo+pp+qq"
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    74
  $ mkcommit uu
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    75
  $ hg up 0
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    76
  0 files updated, 0 files merged, 4 files removed, 0 files unresolved
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    77
  $ printf "oo" > oo;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    78
  $ hg add oo
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    79
  $ hg commit -m "_oo"
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    80
  created new head
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    81
  $ hg up 0
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    82
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    83
  $ printf "pp" > pp;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    84
  $ hg add pp
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    85
  $ hg commit -m "_pp"
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    86
  created new head
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    87
  $ hg merge 3
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    88
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    89
  (branch merge, don't forget to commit)
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    90
  $ hg ci -m 'merge oo and pp'
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    91
  $ printf "qq" > qq;
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    92
  $ hg add qq
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    93
  $ hg commit -m "_qq"
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    94
  $ hg prune --successor "desc(_oo) + desc(_pp) + desc(_qq)" -r "desc('oo+pp+qq')" --split
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    95
  1 changesets pruned
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    96
  1 new orphan changesets
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    97
  $ hg log -G
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    98
  @  6:ea5b1e180c04@default(draft) _qq
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
    99
  |
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   100
  o    5:bf7c32161b4b@default(draft) merge oo and pp
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   101
  |\
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   102
  | o  4:ece0aaa22eb7@default(draft) _pp
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   103
  | |
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   104
  o |  3:a7fdfda64c08@default(draft) _oo
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   105
  |/
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   106
  | *  2:cc56c47d84b3@default(draft) add uu
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   107
  | |
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   108
  | x  1:575a7380a87d@default(draft) oo+pp+qq
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   109
  |/
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   110
  o  0:58663bb03074@default(draft) add aa
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   111
  
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   112
  $ hg evolve --rev "0::"
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   113
  move:[2] add uu
a5876853ba15 evolve: support successors of ancestor of orphan with multiple roots
Manuel Jacob <me@manueljacob.de>
parents: 5206
diff changeset
   114
  atop:[6] _qq