tests/test-evolve-stop-contentdiv.t
branchmercurial-4.7
changeset 4512 7a779a288793
parent 4359 2cbb9914d227
parent 4511 e4fc3af2d0a9
child 4513 d70db7e455dc
child 4549 dcaf340841ef
equal deleted inserted replaced
4359:2cbb9914d227 4512:7a779a288793
     1 Tests for the --stop flag for `hg evolve` command while resolving content-divergence
       
     2 ==================================================================================
       
     3 
       
     4 The `--stop` flag stops the interrupted evolution and delete the state file so
       
     5 user can do other things and comeback and do evolution later on
       
     6 
       
     7 This is testing cases when `hg evolve` command is doing content-divergence resolution.
       
     8 
       
     9 Setup
       
    10 =====
       
    11 
       
    12   $ cat >> $HGRCPATH <<EOF
       
    13   > [alias]
       
    14   > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
       
    15   > [extensions]
       
    16   > EOF
       
    17   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    18 
       
    19   $ hg init stoprepo
       
    20   $ cd stoprepo
       
    21   $ echo ".*\.orig" > .hgignore
       
    22   $ hg add .hgignore
       
    23   $ hg ci -m "added hgignore"
       
    24   $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
       
    25 
       
    26   $ hg glog
       
    27   @  4:c41c793e0ef1 added d
       
    28   |   () draft
       
    29   o  3:ca1b80f7960a added c
       
    30   |   () draft
       
    31   o  2:b1661037fa25 added b
       
    32   |   () draft
       
    33   o  1:c7586e2a9264 added a
       
    34   |   () draft
       
    35   o  0:8fa14d15e168 added hgignore
       
    36       () draft
       
    37 
       
    38 Creating content divergence, resolution of which will lead to conflicts
       
    39 -----------------------------------------------------------------------
       
    40 
       
    41   $ echo bar > d
       
    42   $ hg amend
       
    43 
       
    44   $ hg up c41c793e0ef1 --hidden
       
    45   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    46   updated to hidden changeset c41c793e0ef1
       
    47   (hidden revision 'c41c793e0ef1' was rewritten as: e49523854bc8)
       
    48   working directory parent is obsolete! (c41c793e0ef1)
       
    49   (use 'hg evolve' to update to its successor: e49523854bc8)
       
    50 
       
    51   $ echo foobar > d
       
    52   $ hg amend
       
    53   2 new content-divergent changesets
       
    54   $ hg glog --hidden
       
    55   @  6:9c1631e352d9 added d
       
    56   |   () draft
       
    57   | *  5:e49523854bc8 added d
       
    58   |/    () draft
       
    59   | x  4:c41c793e0ef1 added d
       
    60   |/    () draft
       
    61   o  3:ca1b80f7960a added c
       
    62   |   () draft
       
    63   o  2:b1661037fa25 added b
       
    64   |   () draft
       
    65   o  1:c7586e2a9264 added a
       
    66   |   () draft
       
    67   o  0:8fa14d15e168 added hgignore
       
    68       () draft
       
    69 
       
    70   $ hg evolve --content-divergent
       
    71   merge:[6] added d
       
    72   with: [5] added d
       
    73   base: [4] added d
       
    74   merging "other" content-divergent changeset 'e49523854bc8'
       
    75   merging d
       
    76   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
    77   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
    78   fix conflicts and see `hg help evolve.interrupted`
       
    79   [1]
       
    80 
       
    81   $ hg evolve --stop
       
    82   stopped the interrupted evolve
       
    83   working directory is now at 9c1631e352d9
       
    84 
       
    85   $ hg glog --hidden
       
    86   @  6:9c1631e352d9 added d
       
    87   |   () draft
       
    88   | *  5:e49523854bc8 added d
       
    89   |/    () draft
       
    90   | x  4:c41c793e0ef1 added d
       
    91   |/    () draft
       
    92   o  3:ca1b80f7960a added c
       
    93   |   () draft
       
    94   o  2:b1661037fa25 added b
       
    95   |   () draft
       
    96   o  1:c7586e2a9264 added a
       
    97   |   () draft
       
    98   o  0:8fa14d15e168 added hgignore
       
    99       () draft
       
   100 
       
   101 Content divergence with parent change which will result in conflicts while
       
   102 merging
       
   103 ---------------------------------------------------------------------------
       
   104 
       
   105   $ hg rebase -r . -d .^^^ --config extensions.rebase=
       
   106   rebasing 6:9c1631e352d9 "added d" (tip)
       
   107 
       
   108   $ hg glog
       
   109   @  7:517d4375cb72 added d
       
   110   |   () draft
       
   111   | *  5:e49523854bc8 added d
       
   112   | |   () draft
       
   113   | o  3:ca1b80f7960a added c
       
   114   | |   () draft
       
   115   | o  2:b1661037fa25 added b
       
   116   |/    () draft
       
   117   o  1:c7586e2a9264 added a
       
   118   |   () draft
       
   119   o  0:8fa14d15e168 added hgignore
       
   120       () draft
       
   121 
       
   122   $ hg evolve --content-divergent
       
   123   merge:[5] added d
       
   124   with: [7] added d
       
   125   base: [4] added d
       
   126   rebasing "other" content-divergent changeset 517d4375cb72 on ca1b80f7960a
       
   127   updating to "local" side of the conflict: e49523854bc8
       
   128   merging "other" content-divergent changeset '606ad96040fc'
       
   129   merging d
       
   130   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   131   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   132   fix conflicts and see `hg help evolve.interrupted`
       
   133   [1]
       
   134 
       
   135   $ hg evolve --stop
       
   136   stopped the interrupted evolve
       
   137   working directory is now at 517d4375cb72
       
   138 
       
   139   $ hg glog
       
   140   @  7:517d4375cb72 added d
       
   141   |   () draft
       
   142   | *  5:e49523854bc8 added d
       
   143   | |   () draft
       
   144   | o  3:ca1b80f7960a added c
       
   145   | |   () draft
       
   146   | o  2:b1661037fa25 added b
       
   147   |/    () draft
       
   148   o  1:c7586e2a9264 added a
       
   149   |   () draft
       
   150   o  0:8fa14d15e168 added hgignore
       
   151       () draft
       
   152 
       
   153 Content-divergence with parent-change which will result in conflicts while
       
   154 relocation
       
   155 ---------------------------------------------------------------------------
       
   156 
       
   157   $ echo babar > c
       
   158   $ hg add c
       
   159   $ hg amend
       
   160   $ hg glog
       
   161   @  8:8fd1c4bd144c added d
       
   162   |   () draft
       
   163   | *  5:e49523854bc8 added d
       
   164   | |   () draft
       
   165   | o  3:ca1b80f7960a added c
       
   166   | |   () draft
       
   167   | o  2:b1661037fa25 added b
       
   168   |/    () draft
       
   169   o  1:c7586e2a9264 added a
       
   170   |   () draft
       
   171   o  0:8fa14d15e168 added hgignore
       
   172       () draft
       
   173 
       
   174   $ hg evolve --content-divergent
       
   175   merge:[5] added d
       
   176   with: [8] added d
       
   177   base: [4] added d
       
   178   rebasing "other" content-divergent changeset 8fd1c4bd144c on ca1b80f7960a
       
   179   merging c
       
   180   warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
       
   181   fix conflicts and see `hg help evolve.interrupted`
       
   182   [1]
       
   183 
       
   184   $ hg diff
       
   185   diff -r ca1b80f7960a c
       
   186   --- a/c	Thu Jan 01 00:00:00 1970 +0000
       
   187   +++ b/c	Thu Jan 01 00:00:00 1970 +0000
       
   188   @@ -1,1 +1,5 @@
       
   189   +<<<<<<< destination: ca1b80f7960a - test: added c
       
   190    foo
       
   191   +=======
       
   192   +babar
       
   193   +>>>>>>> evolving:    8fd1c4bd144c - test: added d
       
   194   diff -r ca1b80f7960a d
       
   195   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
       
   196   +++ b/d	Thu Jan 01 00:00:00 1970 +0000
       
   197   @@ -0,0 +1,1 @@
       
   198   +foobar
       
   199 
       
   200   $ hg evolve --stop
       
   201   stopped the interrupted evolve
       
   202   working directory is now at ca1b80f7960a
       
   203 
       
   204 XXX: we should have preserved the wdir to be at rev 8
       
   205   $ hg glog
       
   206   *  8:8fd1c4bd144c added d
       
   207   |   () draft
       
   208   | *  5:e49523854bc8 added d
       
   209   | |   () draft
       
   210   | @  3:ca1b80f7960a added c
       
   211   | |   () draft
       
   212   | o  2:b1661037fa25 added b
       
   213   |/    () draft
       
   214   o  1:c7586e2a9264 added a
       
   215   |   () draft
       
   216   o  0:8fa14d15e168 added hgignore
       
   217       () draft