tests/test-evolve-content-divergence.t
author Pulkit Goyal <7895pulkit@gmail.com>
Mon, 04 Jun 2018 04:03:02 +0530
changeset 3790 5b9e3aaa6da8
child 3801 ee78135b2f45
permissions -rw-r--r--
evolve: prompt user for branch selection while resolving content-divergence When resolving content-divergence, there can be case when both the content-divergent changesets are on different named branches. In that case, we are not sure which branch should the resolution commit should be on. This patch adds logic to prompt user to choose the branch which the resolution commit should be on and then creates the new resolution commit on that branch. This also adds a new test file which have tests for the branch selection feature we have added.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3790
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     1
** Test for handling of content divergent changesets by `hg evolve` **
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     2
====================================================================
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     3
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     4
  $ cat >> $HGRCPATH <<EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     5
  > [alias]
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     6
  > glog = log -GT "{rev}:{node|short} {desc|firstline}\n ({bookmarks}) [{branch}] {phase}"
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     7
  > [extensions]
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     8
  > EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     9
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    10
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    11
  $ hg init cdiv
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    12
  $ cd cdiv
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    13
  $ echo ".*\.orig" > .hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    14
  $ hg add .hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    15
  $ hg ci -m "added hgignore"
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    16
  $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    17
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    18
  $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    19
  @  4:c41c793e0ef1 added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    20
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    21
  o  3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    22
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    23
  o  2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    24
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    25
  o  1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    26
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    27
  o  0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    28
      () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    29
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    30
Creating content-divergence with branch change
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    31
----------------------------------------------
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    32
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    33
  $ hg branch -r . foobar
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    34
  changed branch on 1 changesets
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    35
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    36
  $ hg up c41c793e0ef1 --hidden
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    37
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    38
  updated to hidden changeset c41c793e0ef1
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    39
  (hidden revision 'c41c793e0ef1' was rewritten as: 9e5dffcb3d48)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    40
  working directory parent is obsolete! (c41c793e0ef1)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    41
  (use 'hg evolve' to update to its successor: 9e5dffcb3d48)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    42
  $ echo bar > d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    43
  $ hg branch watwat
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    44
  marked working directory as branch watwat
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    45
  $ hg amend
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    46
  2 new content-divergent changesets
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    47
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    48
  $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    49
  @  6:264b04f771fb added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    50
  |   () [watwat] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    51
  | *  5:9e5dffcb3d48 added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    52
  |/    () [foobar] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    53
  o  3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    54
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    55
  o  2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    56
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    57
  o  1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    58
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    59
  o  0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    60
      () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    61
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    62
  $ hg evolve --content-divergent --config ui.interactive=True<<EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    63
  > c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    64
  > EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    65
  merge:[6] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    66
  with: [5] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    67
  base: [4] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    68
  merging "other" content-divergent changeset '9e5dffcb3d48'
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    69
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    70
  content divergent changesets on different branches.
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    71
  choose branch for the resolution changeset. (a) default or (b) watwat or (c) foobar?  c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    72
  working directory is now at 23a4467c278e
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    73
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    74
  $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    75
  @  7:23a4467c278e added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    76
  |   () [foobar] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    77
  o  3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    78
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    79
  o  2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    80
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    81
  o  1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    82
  |   () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    83
  o  0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    84
      () [default] draft