tests/test-evolve-abort.t
changeset 3642 319b1f0f4de2
child 3653 d9682c41ea2f
equal deleted inserted replaced
3641:ed50f10aacbd 3642:319b1f0f4de2
       
     1 Tests for the --abort flag for `hg evolve` command
       
     2 ==================================================
       
     3 
       
     4 Setup
       
     5 =====
       
     6 
       
     7   $ cat >> $HGRCPATH <<EOF
       
     8   > [phases]
       
     9   > publish = False
       
    10   > [alias]
       
    11   > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
       
    12   > [extensions]
       
    13   > EOF
       
    14   $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
       
    15 
       
    16   $ hg init abortrepo
       
    17   $ cd abortrepo
       
    18   $ echo ".*\.orig" > .hgignore
       
    19   $ hg add .hgignore
       
    20   $ hg ci -m "added hgignore"
       
    21   $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
       
    22 
       
    23   $ hg glog
       
    24   @  4:c41c793e0ef1 added d
       
    25   |   () draft
       
    26   o  3:ca1b80f7960a added c
       
    27   |   () draft
       
    28   o  2:b1661037fa25 added b
       
    29   |   () draft
       
    30   o  1:c7586e2a9264 added a
       
    31   |   () draft
       
    32   o  0:8fa14d15e168 added hgignore
       
    33       () draft
       
    34 
       
    35 Testing --abort when no evolve is interrupted
       
    36 =============================================
       
    37 
       
    38   $ hg evolve --abort
       
    39   abort: no interrupted evolve to stop
       
    40   [255]
       
    41 
       
    42 Testing with wrong combination of flags
       
    43 =======================================
       
    44 
       
    45   $ hg evolve --abort --continue
       
    46   abort: cannot specify both "--abort" and "--continue"
       
    47   [255]
       
    48 
       
    49   $ hg evolve --abort --stop
       
    50   abort: cannot specify both "--abort" and "--stop"
       
    51   [255]
       
    52 
       
    53   $ hg evolve --abort --rev 3
       
    54   abort: cannot specify both "--rev" and "--abort"
       
    55   [255]
       
    56 
       
    57   $ hg evolve --abort --any
       
    58   abort: cannot specify both "--any" and "--abort"
       
    59   [255]
       
    60 
       
    61   $ hg evolve --abort --all
       
    62   abort: cannot specify both "--all" and "--abort"
       
    63   [255]
       
    64 
       
    65 Normal testingw when no rev was evolved
       
    66 ========================================
       
    67 
       
    68   $ hg prev
       
    69   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
    70   [3] added c
       
    71 
       
    72   $ echo babar > d
       
    73   $ hg add d
       
    74   $ hg amend
       
    75   1 new orphan changesets
       
    76 
       
    77   $ hg evolve --all
       
    78   move:[4] added d
       
    79   atop:[5] added c
       
    80   merging d
       
    81   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
    82   evolve failed!
       
    83   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
    84   abort: unresolved merge conflicts (see hg help resolve)
       
    85   [255]
       
    86 
       
    87   $ hg evolve --abort
       
    88   evolve aborted
       
    89   working directory is now at e93a9161a274
       
    90 
       
    91   $ hg glog
       
    92   @  5:e93a9161a274 added c
       
    93   |   () draft
       
    94   | *  4:c41c793e0ef1 added d
       
    95   | |   () draft
       
    96   | x  3:ca1b80f7960a added c
       
    97   |/    () draft
       
    98   o  2:b1661037fa25 added b
       
    99   |   () draft
       
   100   o  1:c7586e2a9264 added a
       
   101   |   () draft
       
   102   o  0:8fa14d15e168 added hgignore
       
   103       () draft
       
   104 
       
   105   $ hg diff
       
   106 
       
   107   $ hg status
       
   108 
       
   109 cleaning up things for next testing
       
   110 
       
   111   $ hg evolve --all
       
   112   move:[4] added d
       
   113   atop:[5] added c
       
   114   merging d
       
   115   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
       
   116   evolve failed!
       
   117   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   118   abort: unresolved merge conflicts (see hg help resolve)
       
   119   [255]
       
   120   $ echo foo > d
       
   121   $ hg resolve -m
       
   122   (no more unresolved files)
       
   123   continue: hg evolve --continue
       
   124   $ hg evolve --continue
       
   125   evolving 4:c41c793e0ef1 "added d"
       
   126   working directory is now at e83de241f751
       
   127 
       
   128   $ hg up .^^^
       
   129   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
       
   130 
       
   131 When there are evolved revisions but on a single branch
       
   132 =======================================================
       
   133 
       
   134   $ echo bar > c
       
   135   $ hg add c
       
   136   $ hg amend
       
   137   3 new orphan changesets
       
   138 
       
   139   $ hg evolve --all
       
   140   move:[2] added b
       
   141   atop:[7] added a
       
   142   move:[5] added c
       
   143   atop:[8] added b
       
   144   merging c
       
   145   warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
       
   146   evolve failed!
       
   147   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   148   abort: unresolved merge conflicts (see hg help resolve)
       
   149   [255]
       
   150 
       
   151   $ hg glog
       
   152   @  8:0c41ec482070 added b
       
   153   |   () draft
       
   154   o  7:125af0ed8cae added a
       
   155   |   () draft
       
   156   | *  6:e83de241f751 added d
       
   157   | |   () draft
       
   158   | *  5:e93a9161a274 added c
       
   159   | |   () draft
       
   160   | x  2:b1661037fa25 added b
       
   161   | |   () draft
       
   162   | x  1:c7586e2a9264 added a
       
   163   |/    () draft
       
   164   o  0:8fa14d15e168 added hgignore
       
   165       () draft
       
   166 
       
   167   $ hg evolve --abort
       
   168   1 new orphan changesets
       
   169   evolve aborted
       
   170   working directory is now at 125af0ed8cae
       
   171 
       
   172   $ hg glog
       
   173   @  7:125af0ed8cae added a
       
   174   |   () draft
       
   175   | *  6:e83de241f751 added d
       
   176   | |   () draft
       
   177   | *  5:e93a9161a274 added c
       
   178   | |   () draft
       
   179   | *  2:b1661037fa25 added b
       
   180   | |   () draft
       
   181   | x  1:c7586e2a9264 added a
       
   182   |/    () draft
       
   183   o  0:8fa14d15e168 added hgignore
       
   184       () draft
       
   185 
       
   186   $ cd ..
       
   187 
       
   188 Testing when evolved revs are on multiple branches
       
   189 ==================================================
       
   190 
       
   191   $ hg init repotwo
       
   192   $ cd repotwo
       
   193   $ echo ".*\.orig" > .hgignore
       
   194   $ hg add .hgignore
       
   195   $ hg ci -m "added hgignore"
       
   196   $ echo a > a
       
   197   $ hg ci -Aqm "added a"
       
   198   $ for ch in b c; do echo $ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
       
   199   $ hg up .^^
       
   200   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   201   $ for ch in c d; do echo $ ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
       
   202   created new head
       
   203   $ hg up .^^
       
   204   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
       
   205   $ echo foo > a
       
   206   $ hg ci -m "foo to a"
       
   207   created new head
       
   208 
       
   209   $ hg glog
       
   210   @  6:8f20d4390c21 foo to a
       
   211   |   () draft
       
   212   | o  5:bcb1c47f8520 added d
       
   213   | |   () draft
       
   214   | o  4:86d2603075a3 added c
       
   215   |/    () draft
       
   216   | o  3:17509928e5bf added c
       
   217   | |   () draft
       
   218   | o  2:9f0c80a55ddc added b
       
   219   |/    () draft
       
   220   o  1:2f913b0c9220 added a
       
   221   |   () draft
       
   222   o  0:8fa14d15e168 added hgignore
       
   223       () draft
       
   224 
       
   225   $ hg prev
       
   226   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   227   [1] added a
       
   228   $ echo aa > a
       
   229   $ hg amend
       
   230   5 new orphan changesets
       
   231 
       
   232   $ hg evolve --all
       
   233   move:[2] added b
       
   234   atop:[7] added a
       
   235   move:[4] added c
       
   236   atop:[7] added a
       
   237   move:[6] foo to a
       
   238   atop:[7] added a
       
   239   merging a
       
   240   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
   241   evolve failed!
       
   242   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   243   abort: unresolved merge conflicts (see hg help resolve)
       
   244   [255]
       
   245 
       
   246   $ hg glog
       
   247   o  9:7f8e8bd9f0b6 added c
       
   248   |   () draft
       
   249   | o  8:db3b42ef4da7 added b
       
   250   |/    () draft
       
   251   @  7:807e8e2ca559 added a
       
   252   |   () draft
       
   253   | *  6:8f20d4390c21 foo to a
       
   254   | |   () draft
       
   255   | | *  5:bcb1c47f8520 added d
       
   256   | | |   () draft
       
   257   | | x  4:86d2603075a3 added c
       
   258   | |/    () draft
       
   259   | | *  3:17509928e5bf added c
       
   260   | | |   () draft
       
   261   | | x  2:9f0c80a55ddc added b
       
   262   | |/    () draft
       
   263   | x  1:2f913b0c9220 added a
       
   264   |/    () draft
       
   265   o  0:8fa14d15e168 added hgignore
       
   266       () draft
       
   267 
       
   268   $ hg evolve --abort
       
   269   2 new orphan changesets
       
   270   evolve aborted
       
   271   working directory is now at 807e8e2ca559
       
   272 
       
   273   $ hg glog
       
   274   @  7:807e8e2ca559 added a
       
   275   |   () draft
       
   276   | *  6:8f20d4390c21 foo to a
       
   277   | |   () draft
       
   278   | | *  5:bcb1c47f8520 added d
       
   279   | | |   () draft
       
   280   | | *  4:86d2603075a3 added c
       
   281   | |/    () draft
       
   282   | | *  3:17509928e5bf added c
       
   283   | | |   () draft
       
   284   | | *  2:9f0c80a55ddc added b
       
   285   | |/    () draft
       
   286   | x  1:2f913b0c9220 added a
       
   287   |/    () draft
       
   288   o  0:8fa14d15e168 added hgignore
       
   289       () draft
       
   290 
       
   291   $ hg status
       
   292 
       
   293   $ hg diff
       
   294 
       
   295 Testing when user created a new changesets on top of evolved revisions
       
   296 ======================================================================
       
   297 
       
   298   $ hg evolve --all
       
   299   move:[2] added b
       
   300   atop:[7] added a
       
   301   move:[4] added c
       
   302   atop:[7] added a
       
   303   move:[6] foo to a
       
   304   atop:[7] added a
       
   305   merging a
       
   306   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
   307   evolve failed!
       
   308   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   309   abort: unresolved merge conflicts (see hg help resolve)
       
   310   [255]
       
   311   $ hg glog
       
   312   o  9:7f8e8bd9f0b6 added c
       
   313   |   () draft
       
   314   | o  8:db3b42ef4da7 added b
       
   315   |/    () draft
       
   316   @  7:807e8e2ca559 added a
       
   317   |   () draft
       
   318   | *  6:8f20d4390c21 foo to a
       
   319   | |   () draft
       
   320   | | *  5:bcb1c47f8520 added d
       
   321   | | |   () draft
       
   322   | | x  4:86d2603075a3 added c
       
   323   | |/    () draft
       
   324   | | *  3:17509928e5bf added c
       
   325   | | |   () draft
       
   326   | | x  2:9f0c80a55ddc added b
       
   327   | |/    () draft
       
   328   | x  1:2f913b0c9220 added a
       
   329   |/    () draft
       
   330   o  0:8fa14d15e168 added hgignore
       
   331       () draft
       
   332 
       
   333   $ echo foo > a
       
   334   $ hg resolve -m
       
   335   (no more unresolved files)
       
   336   continue: hg evolve --continue
       
   337 
       
   338   $ cd ..
       
   339   $ hg init clonerepo
       
   340   $ cd repotwo
       
   341   $ hg push ../clonerepo --force
       
   342   pushing to ../clonerepo
       
   343   searching for changes
       
   344   adding changesets
       
   345   adding manifests
       
   346   adding file changes
       
   347   added 10 changesets with 8 changes to 5 files (+4 heads)
       
   348   3 new obsolescence markers
       
   349   3 new orphan changesets
       
   350   $ cd ../clonerepo
       
   351   $ hg up 7f8e8bd9f0b6
       
   352   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   353   $ echo bar > bar
       
   354   $ hg add bar
       
   355   $ hg ci -m "made an new commit on evolved rev"
       
   356 
       
   357   $ hg push ../repotwo --force
       
   358   pushing to ../repotwo
       
   359   searching for changes
       
   360   adding changesets
       
   361   adding manifests
       
   362   adding file changes
       
   363   added 1 changesets with 1 changes to 1 files
       
   364   $ cd ../repotwo
       
   365   $ hg evolve --abort
       
   366   warning: new changesets detected on destination branch
       
   367   abort: unable to abort interrupted evolve, use 'hg evolve --stop' to stop evolve
       
   368   [255]
       
   369 
       
   370   $ hg evolve --stop
       
   371   stopped the interrupted evolve
       
   372   working directory is now at 807e8e2ca559
       
   373 
       
   374 Testing when the evolved revision turned public due to some other user actions
       
   375 ==============================================================================
       
   376 
       
   377   $ hg evolve --all
       
   378   move:[3] added c
       
   379   atop:[8] added b
       
   380   move:[5] added d
       
   381   atop:[9] added c
       
   382   move:[6] foo to a
       
   383   atop:[7] added a
       
   384   merging a
       
   385   warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
       
   386   evolve failed!
       
   387   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   388   abort: unresolved merge conflicts (see hg help resolve)
       
   389   [255]
       
   390 
       
   391   $ hg glog
       
   392   o  12:1c476940790a added d
       
   393   |   () draft
       
   394   | o  11:c10a55eb0cc6 added c
       
   395   | |   () draft
       
   396   +---o  10:48eca1ed5478 made an new commit on evolved rev
       
   397   | |     () draft
       
   398   o |  9:7f8e8bd9f0b6 added c
       
   399   | |   () draft
       
   400   | o  8:db3b42ef4da7 added b
       
   401   |/    () draft
       
   402   @  7:807e8e2ca559 added a
       
   403   |   () draft
       
   404   | *  6:8f20d4390c21 foo to a
       
   405   | |   () draft
       
   406   | x  1:2f913b0c9220 added a
       
   407   |/    () draft
       
   408   o  0:8fa14d15e168 added hgignore
       
   409       () draft
       
   410 
       
   411   $ hg phase -r 1c476940790a --public
       
   412 
       
   413   $ hg evolve --abort
       
   414   cannot clean up public changesets: 1c476940790a
       
   415   abort: unable to abort interrupted evolve, use 'hg evolve --stop' to stop evolve
       
   416   [255]
       
   417 
       
   418   $ hg evolve --stop
       
   419   stopped the interrupted evolve
       
   420   working directory is now at 807e8e2ca559
       
   421 
       
   422   $ cd ..
       
   423 
       
   424 Testing that bookmark should be moved back when doing `hg evolve --abort`
       
   425 =========================================================================
       
   426 
       
   427   $ hg init repothree
       
   428   $ cd repothree
       
   429   $ echo ".*\.orig" > .hgignore
       
   430   $ hg add .hgignore
       
   431   $ hg ci -m "added hgignore"
       
   432   $ for ch in a b c; do echo $ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
       
   433 
       
   434   $ hg up .^
       
   435   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   436   $ hg bookmark bm1
       
   437   $ hg up .^
       
   438   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   439   (leaving bookmark bm1)
       
   440   $ echo foo > c
       
   441   $ hg add c
       
   442   $ hg amend
       
   443   2 new orphan changesets
       
   444 
       
   445   $ hg glog
       
   446   @  4:a0086c17bfc7 added a
       
   447   |   () draft
       
   448   | *  3:17509928e5bf added c
       
   449   | |   () draft
       
   450   | *  2:9f0c80a55ddc added b
       
   451   | |   (bm1) draft
       
   452   | x  1:2f913b0c9220 added a
       
   453   |/    () draft
       
   454   o  0:8fa14d15e168 added hgignore
       
   455       () draft
       
   456 
       
   457   $ hg evolve --all
       
   458   move:[2] added b
       
   459   atop:[4] added a
       
   460   move:[3] added c
       
   461   atop:[5] added b
       
   462   merging c
       
   463   warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
       
   464   evolve failed!
       
   465   fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort
       
   466   abort: unresolved merge conflicts (see hg help resolve)
       
   467   [255]
       
   468 
       
   469   $ hg glog
       
   470   @  5:c1f4718020e3 added b
       
   471   |   (bm1) draft
       
   472   o  4:a0086c17bfc7 added a
       
   473   |   () draft
       
   474   | *  3:17509928e5bf added c
       
   475   | |   () draft
       
   476   | x  2:9f0c80a55ddc added b
       
   477   | |   () draft
       
   478   | x  1:2f913b0c9220 added a
       
   479   |/    () draft
       
   480   o  0:8fa14d15e168 added hgignore
       
   481       () draft
       
   482 
       
   483   $ hg evolve --abort
       
   484   1 new orphan changesets
       
   485   evolve aborted
       
   486   working directory is now at a0086c17bfc7
       
   487 
       
   488 XXX: the bookmark bm1 should have moved back to 9f0c80a55ddc
       
   489   $ hg glog
       
   490   @  4:a0086c17bfc7 added a
       
   491   |   (bm1) draft
       
   492   | *  3:17509928e5bf added c
       
   493   | |   () draft
       
   494   | *  2:9f0c80a55ddc added b
       
   495   | |   () draft
       
   496   | x  1:2f913b0c9220 added a
       
   497   |/    () draft
       
   498   o  0:8fa14d15e168 added hgignore
       
   499       () draft