tests/test-stabilize-result.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   $ cat >> $HGRCPATH <<EOF
       
     2   > [defaults]
       
     3   > amend=-d "0 0"
       
     4   > [extensions]
       
     5   > hgext.rebase=
       
     6   > EOF
       
     7   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
     8 
       
     9   $ glog() {
       
    10   >   hg log -G --template \
       
    11   >     '{rev}:{node|short}@{branch}({phase}) bk:[{bookmarks}] {desc|firstline}\n' "$@"
       
    12   > }
       
    13 
       
    14 Test evolve removing the changeset being evolved
       
    15 
       
    16   $ hg init empty
       
    17   $ cd empty
       
    18   $ echo a > a
       
    19   $ hg ci -Am adda a
       
    20   $ echo b > b
       
    21   $ hg ci -Am addb b
       
    22   $ echo a >> a
       
    23   $ hg ci -m changea
       
    24   $ hg bookmark changea
       
    25   $ hg up 1
       
    26   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    27   (leaving bookmark changea)
       
    28   $ echo a >> a
       
    29   $ hg amend -m changea
       
    30   1 new orphan changesets
       
    31   $ hg evolve -v --confirm
       
    32   move:[2] changea
       
    33   atop:[3] changea
       
    34   perform evolve? [Ny] n
       
    35   abort: evolve aborted by user
       
    36   [255]
       
    37   $ echo y | hg evolve -v --confirm --config ui.interactive=True
       
    38   move:[2] changea
       
    39   atop:[3] changea
       
    40   perform evolve? [Ny] y
       
    41   hg rebase -r cce2c55b8965 -d fb9d051ec0a4
       
    42   resolving manifests
       
    43   evolution of 2:cce2c55b8965 created no changes to commit
       
    44 
       
    45   $ glog --hidden
       
    46   @  3:fb9d051ec0a4@default(draft) bk:[changea] changea
       
    47   |
       
    48   | x  2:cce2c55b8965@default(draft) bk:[] changea
       
    49   | |
       
    50   | x  1:102a90ea7b4a@default(draft) bk:[] addb
       
    51   |/
       
    52   o  0:07f494440405@default(draft) bk:[] adda
       
    53   
       
    54   $ hg debugobsolete
       
    55   102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
       
    56   cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
       
    57 
       
    58 Test evolve with conflict
       
    59 
       
    60   $ ls
       
    61   a
       
    62   b
       
    63   $ hg pdiff a
       
    64   diff -r 07f494440405 a
       
    65   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
    66   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
    67   @@ -1,1 +1,2 @@
       
    68    a
       
    69   +a
       
    70   $ echo 'newer a' >> a
       
    71   $ hg ci -m 'newer a'
       
    72   $ hg gdown
       
    73   gdown have been deprecated in favor of previous
       
    74   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    75   [3] changea
       
    76   $ echo 'a' > a
       
    77   $ hg amend
       
    78   1 new orphan changesets
       
    79   $ hg evolve
       
    80   move:[4] newer a
       
    81   atop:[5] changea
       
    82   merging a
       
    83   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
    84   fix conflicts and see `hg help evolve.interrupted`
       
    85   [1]
       
    86   $ hg revert -r "orphan()" a
       
    87   $ hg diff
       
    88   diff -r 66719795a494 a
       
    89   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
    90   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
    91   @@ -1,1 +1,3 @@
       
    92    a
       
    93   +a
       
    94   +newer a
       
    95   $ hg evolve --continue
       
    96   abort: unresolved merge conflicts (see 'hg help resolve')
       
    97   [255]
       
    98   $ hg resolve -m a
       
    99   (no more unresolved files)
       
   100   continue: hg evolve --continue
       
   101   $ hg evolve --continue
       
   102   evolving 4:3655f0f50885 "newer a"
       
   103   working directory is now at 1cf0aacfd363
       
   104 
       
   105 Stabilize latecomer with different parent
       
   106 =========================================
       
   107 
       
   108 (the same-parent case is handled in test-evolve.t)
       
   109 
       
   110   $ glog
       
   111   @  6:1cf0aacfd363@default(draft) bk:[] newer a
       
   112   |
       
   113   o  5:66719795a494@default(draft) bk:[changea] changea
       
   114   |
       
   115   o  0:07f494440405@default(draft) bk:[] adda
       
   116   
       
   117 Add another commit
       
   118 
       
   119   $ hg gdown
       
   120   gdown have been deprecated in favor of previous
       
   121   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   122   [5] changea
       
   123   $ echo 'c' > c
       
   124   $ hg add c
       
   125   $ hg commit -m 'add c'
       
   126   created new head
       
   127 
       
   128 Get a successors of 8 on it
       
   129 
       
   130   $ hg pick 1cf0aacfd363
       
   131   picking 6:1cf0aacfd363 "newer a"
       
   132 
       
   133 Add real change to the successors
       
   134 
       
   135   $ echo 'babar' >> a
       
   136   $ hg amend
       
   137 
       
   138 Make precursors public
       
   139 
       
   140   $ hg phase --hidden --public 1cf0aacfd363
       
   141   1 new phase-divergent changesets
       
   142   $ glog
       
   143   @  9:99c21c89bcef@default(draft) bk:[] newer a
       
   144   |
       
   145   o  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   146   |
       
   147   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   148   |/
       
   149   o  5:66719795a494@default(public) bk:[changea] changea
       
   150   |
       
   151   o  0:07f494440405@default(public) bk:[] adda
       
   152   
       
   153 
       
   154 Stabilize!
       
   155 
       
   156   $ hg evolve --any --dry-run --phase-divergent
       
   157   recreate:[9] newer a
       
   158   atop:[6] newer a
       
   159   hg rebase --rev 99c21c89bcef --dest 66719795a494;
       
   160   hg update 1cf0aacfd363;
       
   161   hg revert --all --rev 99c21c89bcef;
       
   162   hg commit --msg "phase-divergent update to 99c21c89bcef"
       
   163   $ hg evolve --any --confirm --phase-divergent
       
   164   recreate:[9] newer a
       
   165   atop:[6] newer a
       
   166   perform evolve? [Ny] n
       
   167   abort: evolve aborted by user
       
   168   [255]
       
   169   $ echo y | hg evolve --any --confirm --config ui.interactive=True --phase-divergent
       
   170   recreate:[9] newer a
       
   171   atop:[6] newer a
       
   172   perform evolve? [Ny] y
       
   173   rebasing to destination parent: 66719795a494
       
   174   computing new diff
       
   175   committed as 8fc63fe1f297
       
   176   working directory is now at 8fc63fe1f297
       
   177   $ glog
       
   178   @  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   179   |
       
   180   | o  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   181   | |
       
   182   o |  6:1cf0aacfd363@default(public) bk:[] newer a
       
   183   |/
       
   184   o  5:66719795a494@default(public) bk:[changea] changea
       
   185   |
       
   186   o  0:07f494440405@default(public) bk:[] adda
       
   187   
       
   188   $ hg exp
       
   189   # HG changeset patch
       
   190   # User test
       
   191   # Date 0 0
       
   192   #      Thu Jan 01 00:00:00 1970 +0000
       
   193   # Node ID 8fc63fe1f297f356d1156bbbbe865b9911efad74
       
   194   # Parent  1cf0aacfd36310b18e403e1594871187e0364a82
       
   195   phase-divergent update to 1cf0aacfd363:
       
   196   
       
   197   newer a
       
   198   
       
   199   diff -r 1cf0aacfd363 -r 8fc63fe1f297 a
       
   200   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
   201   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   202   @@ -1,3 +1,4 @@
       
   203    a
       
   204    a
       
   205    newer a
       
   206   +babar
       
   207 
       
   208 Stabilize divergent changesets with same parent
       
   209 ===============================================
       
   210 
       
   211   $ rm a.orig
       
   212   $ hg up 7bc2f5967f5e
       
   213   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   214   $ cat << EOF >> a
       
   215   > flore
       
   216   > arthur
       
   217   > zephir
       
   218   > some
       
   219   > less
       
   220   > conflict
       
   221   > EOF
       
   222   $ hg ci -m 'More addition'
       
   223   $ glog
       
   224   @  12:3932c176bbaa@default(draft) bk:[] More addition
       
   225   |
       
   226   | o  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   227   | |
       
   228   o |  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   229   | |
       
   230   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   231   |/
       
   232   o  5:66719795a494@default(public) bk:[changea] changea
       
   233   |
       
   234   o  0:07f494440405@default(public) bk:[] adda
       
   235   
       
   236   $ echo 'babar' >> a
       
   237   $ hg amend
       
   238   $ hg up --hidden 3932c176bbaa
       
   239   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   240   updated to hidden changeset 3932c176bbaa
       
   241   (hidden revision '3932c176bbaa' was rewritten as: d2f173e25686)
       
   242   working directory parent is obsolete! (3932c176bbaa)
       
   243   (use 'hg evolve' to update to its successor: d2f173e25686)
       
   244   $ mv a a.old
       
   245   $ echo 'jungle' > a
       
   246   $ cat a.old >> a
       
   247   $ rm a.old
       
   248   $ hg amend
       
   249   2 new content-divergent changesets
       
   250   $ glog
       
   251   @  14:eacc9c8240fe@default(draft) bk:[] More addition
       
   252   |
       
   253   | *  13:d2f173e25686@default(draft) bk:[] More addition
       
   254   |/
       
   255   | o  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   256   | |
       
   257   o |  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   258   | |
       
   259   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   260   |/
       
   261   o  5:66719795a494@default(public) bk:[changea] changea
       
   262   |
       
   263   o  0:07f494440405@default(public) bk:[] adda
       
   264   
       
   265 
       
   266 Stabilize it
       
   267 
       
   268   $ hg evolve -qn --confirm --content-divergent
       
   269   merge:[14] More addition
       
   270   with: [13] More addition
       
   271   base: [12] More addition
       
   272   perform evolve? [Ny] n
       
   273   abort: evolve aborted by user
       
   274   [255]
       
   275   $ echo y | hg evolve -qn --confirm --config ui.interactive=True --content-divergent
       
   276   merge:[14] More addition
       
   277   with: [13] More addition
       
   278   base: [12] More addition
       
   279   perform evolve? [Ny] y
       
   280   hg update -c eacc9c8240fe &&
       
   281   hg merge d2f173e25686 &&
       
   282   hg commit -m "auto merge resolving conflict between eacc9c8240fe and d2f173e25686"&&
       
   283   hg up -C 3932c176bbaa &&
       
   284   hg revert --all --rev tip &&
       
   285   hg commit -m "`hg log -r eacc9c8240fe --template={desc}`";
       
   286   $ hg evolve -v --content-divergent
       
   287   merge:[14] More addition
       
   288   with: [13] More addition
       
   289   base: [12] More addition
       
   290   merging "other" content-divergent changeset 'd2f173e25686'
       
   291   resolving manifests
       
   292   merging a
       
   293   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
       
   294   committing files:
       
   295   a
       
   296   committing manifest
       
   297   committing changelog
       
   298   working directory is now at 4d6ed26797bc
       
   299   $ hg st
       
   300   $ glog
       
   301   @  15:4d6ed26797bc@default(draft) bk:[] More addition
       
   302   |
       
   303   | o  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   304   | |
       
   305   o |  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   306   | |
       
   307   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   308   |/
       
   309   o  5:66719795a494@default(public) bk:[changea] changea
       
   310   |
       
   311   o  0:07f494440405@default(public) bk:[] adda
       
   312   
       
   313   $ hg summary
       
   314   parent: 15:4d6ed26797bc tip
       
   315    More addition
       
   316   branch: default
       
   317   commit: (clean)
       
   318   update: 2 new changesets, 2 branch heads (merge)
       
   319   phases: 3 draft
       
   320   $ hg export .
       
   321   # HG changeset patch
       
   322   # User test
       
   323   # Date 0 0
       
   324   #      Thu Jan 01 00:00:00 1970 +0000
       
   325   # Node ID 4d6ed26797bc392c0099e48402a5134e669f1a60
       
   326   # Parent  7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced
       
   327   More addition
       
   328   
       
   329   diff -r 7bc2f5967f5e -r 4d6ed26797bc a
       
   330   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
   331   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   332   @@ -1,1 +1,9 @@
       
   333   +jungle
       
   334    a
       
   335   +flore
       
   336   +arthur
       
   337   +zephir
       
   338   +some
       
   339   +less
       
   340   +conflict
       
   341   +babar
       
   342 
       
   343 Check conflict during divergence resolution
       
   344 -------------------------------------------------
       
   345 
       
   346   $ hg up --hidden 3932c176bbaa
       
   347   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   348   updated to hidden changeset 3932c176bbaa
       
   349   (hidden revision '3932c176bbaa' was rewritten as: 4d6ed26797bc)
       
   350   working directory parent is obsolete! (3932c176bbaa)
       
   351   (use 'hg evolve' to update to its successor: 4d6ed26797bc)
       
   352   $ echo 'gotta break' >> a
       
   353   $ hg amend
       
   354   2 new content-divergent changesets
       
   355 # reamend so that the case is not the first precursor.
       
   356   $ hg amend -m "More addition (2)"
       
   357   $ hg phase 'contentdivergent()'
       
   358   15: draft
       
   359   17: draft
       
   360 
       
   361   $ glog
       
   362   @  17:0b336205a5d0@default(draft) bk:[] More addition (2)
       
   363   |
       
   364   | *  15:4d6ed26797bc@default(draft) bk:[] More addition
       
   365   |/
       
   366   | o  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   367   | |
       
   368   o |  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   369   | |
       
   370   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   371   |/
       
   372   o  5:66719795a494@default(public) bk:[changea] changea
       
   373   |
       
   374   o  0:07f494440405@default(public) bk:[] adda
       
   375   
       
   376 
       
   377   $ hg evolve -qn --content-divergent
       
   378   hg update -c 0b336205a5d0 &&
       
   379   hg merge 4d6ed26797bc &&
       
   380   hg commit -m "auto merge resolving conflict between 0b336205a5d0 and 4d6ed26797bc"&&
       
   381   hg up -C 3932c176bbaa &&
       
   382   hg revert --all --rev tip &&
       
   383   hg commit -m "`hg log -r 0b336205a5d0 --template={desc}`";
       
   384   $ hg evolve --content-divergent
       
   385   merge:[17] More addition (2)
       
   386   with: [15] More addition
       
   387   base: [12] More addition
       
   388   merging "other" content-divergent changeset '4d6ed26797bc'
       
   389   merging a
       
   390   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
   391   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
       
   392   fix conflicts and see `hg help evolve.interrupted`
       
   393   [1]
       
   394 
       
   395   $ cat > a <<EOF
       
   396   > jungle
       
   397   > a
       
   398   > flore
       
   399   > arthur
       
   400   > zephir
       
   401   > some
       
   402   > less
       
   403   > conflict
       
   404   > babar
       
   405   > EOF
       
   406 
       
   407   $ hg resolve -m
       
   408   (no more unresolved files)
       
   409   continue: hg evolve --continue
       
   410   $ hg evolve --continue
       
   411   working directory is now at e8746835a2a1
       
   412   $ glog
       
   413   @  18:e8746835a2a1@default(draft) bk:[] More addition (2)
       
   414   |
       
   415   | o  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
       
   416   | |
       
   417   o |  7:7bc2f5967f5e@default(draft) bk:[] add c
       
   418   | |
       
   419   | o  6:1cf0aacfd363@default(public) bk:[] newer a
       
   420   |/
       
   421   o  5:66719795a494@default(public) bk:[changea] changea
       
   422   |
       
   423   o  0:07f494440405@default(public) bk:[] adda
       
   424   
       
   425   $ hg exp
       
   426   # HG changeset patch
       
   427   # User test
       
   428   # Date 0 0
       
   429   #      Thu Jan 01 00:00:00 1970 +0000
       
   430   # Node ID e8746835a2a13122bc8c0ed84fe4ee35649af25d
       
   431   # Parent  7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced
       
   432   More addition (2)
       
   433   
       
   434   diff -r 7bc2f5967f5e -r e8746835a2a1 a
       
   435   --- a/a	Thu Jan 01 00:00:00 1970 +0000
       
   436   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
       
   437   @@ -1,1 +1,9 @@
       
   438   +jungle
       
   439    a
       
   440   +flore
       
   441   +arthur
       
   442   +zephir
       
   443   +some
       
   444   +less
       
   445   +conflict
       
   446   +babar