tests/test-evolve-issue5966.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 05 Apr 2019 17:45:59 +0200
changeset 4473 14437b18b024
parent 4311 8aa28e68ac44
child 4315 55ca0b6276e7
child 4577 bcd52ce0916d
permissions -rw-r--r--
evolve: fix divergence resolution when not merging a descendant In divergence resolution, when we merge other cset with divergent one we pass a `mergeancestor` arg to merge.update() and before this patch we were passing `mergeancestor` as True in every case. But it should be True only when we are merging a descendant onto an ancestor. When mergeancestor is True it does two things: 1) allows the merge if the destination is the same as the parent of the ctx (so we can use graft to copy commits) 2) informs update that the incoming changes are newer than the destination so it doesn't prompt about "remote changed foo which local deleted". So this patch change it to pass `mergeancestor` as True only when it is required. And changes in test file shows that it wasn't prompting either in those cases when it should (acc. to 2nd point) Test written by Pierre-Yves David, based the one updated in 5dbaabfe2c59.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4311
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
Testing evolve --continue with unresolved conflicts (issue5966)
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
https://bz.mercurial-scm.org/show_bug.cgi?id=5966
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
  $ . $TESTDIR/testlib/common.sh
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
  $ hg init issue5966
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
  $ cd issue5966
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
  $ cat > .hg/hgrc << EOF
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
  > [phases]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
  > publish = false
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
  > [alias]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
  > glog = log -GT "{rev}: {desc}"
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
  > [extensions]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
  > evolve=
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
  > EOF
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
  $ touch a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
  $ hg ci -Aqm 'empty'
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
  $ echo apple > a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
  $ hg ci -m 'apple'
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
  $ echo banana > a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
  $ hg ci -m 'banana'
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
  $ echo coconut > a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  $ hg ci -m 'coconut'
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
  $ hg glog
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
  @  3: coconut
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  o  2: banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  o  1: apple
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
  o  0: empty
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
  
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
  $ hg up -q 1
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
Amending revision 1 in a way that causes conflicts
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
  $ echo apricot > a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
  $ hg amend -m 'apricot'
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  2 new orphan changesets
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
  $ hg glog --hidden
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
  @  4: apricot
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  | *  3: coconut
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
  | |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
  | *  2: banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
  | |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  | x  1: apple
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
  |/
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
  o  0: empty
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    55
  
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
  $ hg evolve -t :fail
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  move:[2] banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  atop:[4] apricot
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  fix conflicts and see `hg help evolve.interrupted`
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  [1]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  $ hg evolve --list
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  34a690fcf6ab: banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
    orphan: 7f59f18ca4a9 (obsolete parent)
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  feb8c0bffa1f: coconut
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
    orphan: 34a690fcf6ab (orphan parent)
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
Evolve should detect unresolved conflict.
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  $ hg resolve --list
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  U a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
  $ hg evolve --continue
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
  abort: unresolved merge conflicts (see 'hg help resolve')
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
  [255]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
(even when ran twice)
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
  $ hg evolve --continue
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
  abort: unresolved merge conflicts (see 'hg help resolve')
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  [255]
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  $ cat a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
  apricot
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
  $ hg resolve --list
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  U a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
  $ hg resolve a -t :other
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  (no more unresolved files)
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
  continue: hg evolve --continue
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
  $ hg resolve --list
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  R a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
  $ hg evolve --continue
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
  evolving 2:34a690fcf6ab "banana"
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  working directory is now at e4207a610ed0
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
  $ hg resolve --list
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
evolve the rest of the stack
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    99
  $ hg evolve
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
  move:[3] coconut
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
  atop:[5] banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
  merging a
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
  working directory is now at d77b4639fe26
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   104
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   105
All commit evolved
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  $ hg glog
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
  @  6: coconut
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   109
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
  o  5: banana
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   111
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
  o  4: apricot
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   113
  |
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
  o  0: empty
8aa28e68ac44 evolve: detect unresolved conflict during evolve --continue (issue5966)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   115