tests/test-unstability-resolution-result.t
branchstable
changeset 4507 de9089514833
parent 4490 7a5c6109ee84
child 4516 f54bb6eaf5e6
child 4576 96ce1030d2fb
equal deleted inserted replaced
4486:099e0ca8285e 4507:de9089514833
       
     1 =================================================================
       
     2 Test automatic unstability resolution for multiple advanced cases
       
     3 =================================================================
       
     4 
       
     5 There are dedicated test case for each instability, but this file check some
       
     6 basic case for each type.
       
     7 
       
     8 XXX dispatching each these test case in appropriate file would make sense.
       
     9 
       
    10   $ cat >> $HGRCPATH <<EOF
       
    11   > [defaults]
       
    12   > amend=-d "0 0"
       
    13   > [extensions]
       
    14   > hgext.rebase=
       
    15   > EOF
       
    16   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    17 
       
    18   $ glog() {
       
    19   >   hg log -G --template \
       
    20   >     '{rev}:{node|short}@{branch}({phase}) bk:[{bookmarks}] {desc|firstline}\n' "$@"
       
    21   > }
       
    22 
       
    23 Test evolve removing the orphan changeset being evolved
       
    24 
       
    25   $ hg init empty
       
    26   $ cd empty
       
    27   $ echo a > a
       
    28   $ hg ci -Am adda a
       
    29   $ echo b > b
       
    30   $ hg ci -Am addb b
       
    31   $ echo a >> a
       
    32   $ hg ci -m changea
       
    33   $ hg bookmark changea
       
    34   $ hg up 1
       
    35   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    36   (leaving bookmark changea)
       
    37   $ echo a >> a
       
    38   $ hg amend -m changea
       
    39   1 new orphan changesets
       
    40   $ hg evolve -v --confirm
       
    41   move:[2] changea
       
    42   atop:[3] changea
       
    43   perform evolve? [Ny] n
       
    44   abort: evolve aborted by user
       
    45   [255]
       
    46   $ echo y | hg evolve -v --confirm --config ui.interactive=True
       
    47   move:[2] changea
       
    48   atop:[3] changea
       
    49   perform evolve? [Ny] y
       
    50   hg rebase -r cce2c55b8965 -d fb9d051ec0a4
       
    51   resolving manifests
       
    52   evolution of 2:cce2c55b8965 created no changes to commit
       
    53 
       
    54   $ glog --hidden
       
    55   @  3:fb9d051ec0a4@default(draft) bk:[changea] changea
       
    56   |
       
    57   | x  2:cce2c55b8965@default(draft) bk:[] changea
       
    58   | |
       
    59   | x  1:102a90ea7b4a@default(draft) bk:[] addb
       
    60   |/
       
    61   o  0:07f494440405@default(draft) bk:[] adda
       
    62   
       
    63   $ hg debugobsolete
       
    64   102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
       
    65   cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
       
    66 
       
    67 Test evolve of orphan that run into conflict
       
    68 
       
    69   $ ls
       
    70   a
       
    71   b
       
    72   $ hg pdiff a
       
    73   diff -r 07f494440405 a
       
    74   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
    75   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
    76   @@ -1,1 +1,2 @@
       
    77    a
       
    78   +a
       
    79   $ echo 'newer a' >> a
       
    80   $ hg ci -m 'newer a'
       
    81   $ hg gdown
       
    82   gdown have been deprecated in favor of previous
       
    83   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    84   [3] changea
       
    85   $ echo 'a' > a
       
    86   $ hg amend
       
    87   1 new orphan changesets
       
    88   $ hg evolve
       
    89   move:[4] newer a
       
    90   atop:[5] changea
       
    91   merging a
       
    92   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
    93   fix conflicts and see `hg help evolve.interrupted`
       
    94   [1]
       
    95   $ hg revert -r "orphan()" a
       
    96   $ hg diff
       
    97   diff -r 66719795a494 a
       
    98   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
    99   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   100   @@ -1,1 +1,3 @@
       
   101    a
       
   102   +a
       
   103   +newer a
       
   104   $ hg evolve --continue
       
   105   abort: unresolved merge conflicts (see 'hg help resolve')
       
   106   [255]
       
   107   $ hg resolve -m a
       
   108   (no more unresolved files)
       
   109   continue: hg evolve --continue
       
   110   $ hg evolve --continue
       
   111   evolving 4:3655f0f50885 "newer a"
       
   112   working directory is now at 1cf0aacfd363
       
   113 
       
   114 Stabilize phase-divergent changesets with a different parent
       
   115 ============================================================
       
   116 
       
   117 (the same-parent case is handled in test-evolve.t)
       
   118 
       
   119   $ glog
       
   120   @  6:1cf0aacfd363@default(draft) bk:[] newer a
       
   121   |
       
   122   o  5:66719795a494@default(draft) bk:[changea] changea
       
   123   |
       
   124   o  0:07f494440405@default(draft) bk:[] adda
       
   125   
       
   126 
       
   127 Add another commit
       
   128 
       
   129   $ hg gdown
       
   130   gdown have been deprecated in favor of previous
       
   131   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   132   [5] changea
       
   133   $ echo 'c' > c
       
   134   $ hg add c
       
   135   $ hg commit -m 'add c'
       
   136   created new head
       
   137 
       
   138 Get a successors of 8 on it
       
   139 
       
   140   $ hg pick 1cf0aacfd363
       
   141   picking 6:1cf0aacfd363 "newer a"
       
   142 
       
   143 Add real change to the successors
       
   144 
       
   145   $ echo 'babar' >> a
       
   146   $ hg amend
       
   147 
       
   148 Make precursors public
       
   149 
       
   150   $ hg phase --hidden --public 1cf0aacfd363
       
   151   1 new phase-divergent changesets
       
   152   $ glog
       
   153   @  9:99c21c89bcef@default(draft) bk:[] newer a
       
   154   |
       
   155   o  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   156   |
       
   157   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   158   |/
       
   159   o  5:66719795a494@default(public) bk:[changea] changea
       
   160   |
       
   161   o  0:07f494440405@default(public) bk:[] adda
       
   162   
       
   163 
       
   164 Stabilize!
       
   165 
       
   166   $ hg evolve --any --dry-run --phase-divergent
       
   167   recreate:[9] newer a
       
   168   atop:[6] newer a
       
   169   hg rebase --rev 99c21c89bcef --dest 66719795a494;
       
   170   hg update 1cf0aacfd363;
       
   171   hg revert --all --rev 99c21c89bcef;
       
   172   hg commit --msg "phase-divergent update to 99c21c89bcef"
       
   173   $ hg evolve --any --confirm --phase-divergent
       
   174   recreate:[9] newer a
       
   175   atop:[6] newer a
       
   176   perform evolve? [Ny] n
       
   177   abort: evolve aborted by user
       
   178   [255]
       
   179   $ echo y | hg evolve --any --confirm --config ui.interactive=True --phase-divergent
       
   180   recreate:[9] newer a
       
   181   atop:[6] newer a
       
   182   perform evolve? [Ny] y
       
   183   rebasing to destination parent: 66719795a494
       
   184   committed as 8fc63fe1f297
       
   185   working directory is now at 8fc63fe1f297
       
   186   $ glog
       
   187   @  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   188   |
       
   189   | o  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   190   | |
       
   191   o |  6:1cf0aacfd363@default(public) bk:[] newer a
       
   192   |/
       
   193   o  5:66719795a494@default(public) bk:[changea] changea
       
   194   |
       
   195   o  0:07f494440405@default(public) bk:[] adda
       
   196   
       
   197   $ hg exp
       
   198   # HG changeset patch
       
   199   # User test
       
   200   # Date 0 0
       
   201   #      Thu Jan 01 00:00:00 1970 +0000
       
   202   # Node ID 8fc63fe1f297f356d1156bbbbe865b9911efad74
       
   203   # Parent  1cf0aacfd36310b18e403e1594871187e0364a82
       
   204   phase-divergent update to 1cf0aacfd363:
       
   205   
       
   206   newer a
       
   207   
       
   208   diff -r 1cf0aacfd363 -r 8fc63fe1f297 a
       
   209   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
   210   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   211   @@ -1,3 +1,4 @@
       
   212    a
       
   213    a
       
   214    newer a
       
   215   +babar