tests/test-evolve-phase-divergence.t
branchmercurial-4.3
changeset 4174 e07e764c0f48
parent 3936 537fd9a86c06
parent 4173 e268f7fd7839
child 4207 3d917da5bd95
equal deleted inserted replaced
4173:e268f7fd7839 4174:e07e764c0f48
    78   searching for changes
    78   searching for changes
    79   adding changesets
    79   adding changesets
    80   adding manifests
    80   adding manifests
    81   adding file changes
    81   adding file changes
    82   added 1 changesets with 1 changes to 1 files
    82   added 1 changesets with 1 changes to 1 files
    83   new changesets 4d1169d82e47
       
    84   (run 'hg update' to get a working copy)
    83   (run 'hg update' to get a working copy)
    85 
    84 
    86   $ hg glog
    85   $ hg glog
    87   o  1:4d1169d82e47 modify a
    86   o  1:4d1169d82e47 modify a
    88   |   () draft
    87   |   () draft
   112 XXX: pull should tell us how to see what is the new phase-divergent changeset
   111 XXX: pull should tell us how to see what is the new phase-divergent changeset
   113   $ hg pull ../public
   112   $ hg pull ../public
   114   pulling from ../public
   113   pulling from ../public
   115   searching for changes
   114   searching for changes
   116   no changes found
   115   no changes found
   117   1 new phase-divergent changesets
   116   1 new bumped changesets
   118 
   117 
   119   $ hg glog
   118   $ hg glog
   120   @  2:98bb3a6cfe1a tweak a
   119   @  2:98bb3a6cfe1a tweak a
   121   |   () draft
   120   |   () draft
   122   | o  1:4d1169d82e47 modify a
   121   | o  1:4d1169d82e47 modify a
   127 Using evolve --list to list phase-divergent changesets
   126 Using evolve --list to list phase-divergent changesets
   128 ------------------------------------------------------
   127 ------------------------------------------------------
   129 
   128 
   130   $ hg evolve --list
   129   $ hg evolve --list
   131   98bb3a6cfe1a: tweak a
   130   98bb3a6cfe1a: tweak a
   132     phase-divergent: 4d1169d82e47 (immutable precursor)
   131     bumped: 4d1169d82e47 (immutable precursor)
   133   
   132   
   134 
   133 
   135 
   134 
   136 XXX-Pulkit: Trying to see instability on public changeset
   135 XXX-Pulkit: Trying to see instability on public changeset
   137 
   136 
   150 XXX: There must be mention of phase-divergence here
   149 XXX: There must be mention of phase-divergence here
   151   $ hg obslog -r . --all
   150   $ hg obslog -r . --all
   152   @  98bb3a6cfe1a (2) tweak a
   151   @  98bb3a6cfe1a (2) tweak a
   153   |
   152   |
   154   o  4d1169d82e47 (1) modify a
   153   o  4d1169d82e47 (1) modify a
   155        rewritten(description) as 98bb3a6cfe1a using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   154        rewritten(description) as 98bb3a6cfe1a by test (Thu Jan 01 00:00:00 1970 +0000)
   156   
   155   
   157 Solving the phase divergence using evolve command
   156 Solving the phase divergence using evolve command
   158 --------------------------------------------------
   157 --------------------------------------------------
   159 
   158 
   160 (We do not solve evolution other than orphan by default because it turned out
   159 (We do not solve evolution other than orphan by default because it turned out
   182   recreate:[2] tweak a
   181   recreate:[2] tweak a
   183   atop:[1] modify a
   182   atop:[1] modify a
   184   hg rebase --rev 98bb3a6cfe1a --dest d3873e73d99e;
   183   hg rebase --rev 98bb3a6cfe1a --dest d3873e73d99e;
   185   hg update 4d1169d82e47;
   184   hg update 4d1169d82e47;
   186   hg revert --all --rev 98bb3a6cfe1a;
   185   hg revert --all --rev 98bb3a6cfe1a;
   187   hg commit --msg "phase-divergent update to 98bb3a6cfe1a"
   186   hg commit --msg "bumped update to 98bb3a6cfe1a"
   188 
   187 
   189 XXX: evolve should have mentioned that draft commit is just obsoleted in favour
   188 XXX: evolve should have mentioned that draft commit is just obsoleted in favour
   190 of public one. From the message it looks like a new commit is created.
   189 of public one. From the message it looks like a new commit is created.
   191 
   190 
   192   $ hg evolve --phase-divergent
   191   $ hg evolve --phase-divergent
   257   searching for changes
   256   searching for changes
   258   adding changesets
   257   adding changesets
   259   adding manifests
   258   adding manifests
   260   adding file changes
   259   adding file changes
   261   added 1 changesets with 1 changes to 1 files
   260   added 1 changesets with 1 changes to 1 files
   262   new changesets aa071e5554e3
       
   263   (run 'hg update' to get a working copy)
   261   (run 'hg update' to get a working copy)
   264 
   262 
   265   $ hg push ../public
   263   $ hg push ../public
   266   pushing to ../public
   264   pushing to ../public
   267   searching for changes
   265   searching for changes
   280 
   278 
   281   $ hg pull ../public
   279   $ hg pull ../public
   282   pulling from ../public
   280   pulling from ../public
   283   searching for changes
   281   searching for changes
   284   no changes found
   282   no changes found
   285   1 new phase-divergent changesets
   283   1 new bumped changesets
   286 
   284 
   287   $ hg glog
   285   $ hg glog
   288   @  4:d47f2b37ed82 added bar to foo
   286   @  5:d47f2b37ed82 added bar to foo
   289   |   (bm) draft
   287   |   (bm) draft
   290   | o  3:aa071e5554e3 added foo to foo
   288   | o  3:aa071e5554e3 added foo to foo
   291   |/    () public
   289   |/    () public
   292   o  1:4d1169d82e47 modify a
   290   o  1:4d1169d82e47 modify a
   293   |   () public
   291   |   () public
   302 
   300 
   303 XXX: we should document what should user expect where running this, writing this
   301 XXX: we should document what should user expect where running this, writing this
   304 test I have to go through code base to understand what will be the behavior
   302 test I have to go through code base to understand what will be the behavior
   305 
   303 
   306   $ hg evolve --phase-divergent
   304   $ hg evolve --phase-divergent
   307   recreate:[4] added bar to foo
   305   recreate:[5] added bar to foo
   308   atop:[3] added foo to foo
   306   atop:[3] added foo to foo
   309   computing new diff
   307   computing new diff
   310   committed as 3d62500c673d
   308   committed as bdf645eb43bb
   311   working directory is now at 3d62500c673d
   309   working directory is now at bdf645eb43bb
   312 
   310 
   313   $ hg exp
   311   $ hg exp
   314   # HG changeset patch
   312   # HG changeset patch
   315   # User test
   313   # User test
   316   # Date 0 0
   314   # Date 0 0
   317   #      Thu Jan 01 00:00:00 1970 +0000
   315   #      Thu Jan 01 00:00:00 1970 +0000
   318   # Node ID 3d62500c673dd1c88bb09a73e86d0210aed6fcb6
   316   # Node ID bdf645eb43bb0c9f180cd17d109bb359ce1571b2
   319   # Parent  aa071e5554e36080a36cfd24accd5a71e3320f1e
   317   # Parent  aa071e5554e36080a36cfd24accd5a71e3320f1e
   320   phase-divergent update to aa071e5554e3:
   318   bumped update to aa071e5554e3:
   321   
   319   
   322   added bar to foo
   320   added bar to foo
   323   
   321   
   324   diff -r aa071e5554e3 -r 3d62500c673d foo
   322   diff -r aa071e5554e3 -r bdf645eb43bb foo
   325   --- a/foo	Thu Jan 01 00:00:00 1970 +0000
   323   --- a/foo	Thu Jan 01 00:00:00 1970 +0000
   326   +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
   324   +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
   327   @@ -1,1 +1,2 @@
   325   @@ -1,1 +1,2 @@
   328    foo
   326    foo
   329   +bar
   327   +bar
   330 
   328 
   331 XXX: the commit message is not best one, we should give option to user to modify
   329 XXX: the commit message is not best one, we should give option to user to modify
   332 the commit message
   330 the commit message
   333 
   331 
   334   $ hg glog
   332   $ hg glog
   335   @  5:3d62500c673d phase-divergent update to aa071e5554e3:
   333   @  6:bdf645eb43bb bumped update to aa071e5554e3:
   336   |   (bm) draft
   334   |   (bm) draft
   337   o  3:aa071e5554e3 added foo to foo
   335   o  3:aa071e5554e3 added foo to foo
   338   |   () public
   336   |   () public
   339   o  1:4d1169d82e47 modify a
   337   o  1:4d1169d82e47 modify a
   340   |   () public
   338   |   () public
   341   o  0:d3873e73d99e init
   339   o  0:d3873e73d99e init
   342       () public
   340       () public
   343 
   341 
   344   $ hg obslog -r . --all
   342   $ hg obslog -r . --all
   345   @  3d62500c673d (5) phase-divergent update to aa071e5554e3:
   343   @  bdf645eb43bb (6) bumped update to aa071e5554e3:
   346   |
   344   |
   347   x  d47f2b37ed82 (4) added bar to foo
   345   x  d47f2b37ed82 (5) added bar to foo
   348   |    rewritten(description, parent, content) as 3d62500c673d using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   346   |    rewritten(description, parent, content) as bdf645eb43bb by test (Thu Jan 01 00:00:00 1970 +0000)
   349   |
   347   |
   350   o  aa071e5554e3 (3) added foo to foo
   348   o  aa071e5554e3 (3) added foo to foo
   351        rewritten(description, content) as d47f2b37ed82 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   349        rewritten(description, content) as d47f2b37ed82 by test (Thu Jan 01 00:00:00 1970 +0000)
   352   
   350   
   353 
   351 
   354 Syncing all other repositories
   352 Syncing all other repositories
   355 ------------------------------
   353 ------------------------------
   356 
   354 
   362   searching for changes
   360   searching for changes
   363   adding changesets
   361   adding changesets
   364   adding manifests
   362   adding manifests
   365   adding file changes
   363   adding file changes
   366   added 1 changesets with 1 changes to 1 files
   364   added 1 changesets with 1 changes to 1 files
   367   2 new obsolescence markers
   365   3 new obsolescence markers
   368 
   366 
   369   $ hg push ../private
   367   $ hg push ../private
   370   pushing to ../private
   368   pushing to ../private
   371   searching for changes
   369   searching for changes
   372   adding changesets
   370   adding changesets
   373   adding manifests
   371   adding manifests
   374   adding file changes
   372   adding file changes
   375   added 1 changesets with 1 changes to 1 files
   373   added 1 changesets with 1 changes to 1 files
   376   2 new obsolescence markers
   374   3 new obsolescence markers
   377 
   375 
   378   $ hg push ../public
   376   $ hg push ../public
   379   pushing to ../public
   377   pushing to ../public
   380   searching for changes
   378   searching for changes
   381   adding changesets
   379   adding changesets
   382   adding manifests
   380   adding manifests
   383   adding file changes
   381   adding file changes
   384   added 1 changesets with 1 changes to 1 files
   382   added 1 changesets with 1 changes to 1 files
   385   2 new obsolescence markers
   383   3 new obsolescence markers
   386 
   384 
   387 Creating a phasedivergence changeset where the divergent changeset changed in a
   385 Creating a phasedivergence changeset where the divergent changeset changed in a
   388 way that we rebase that on old public changeset, there will be conflicts, but
   386 way that we rebase that on old public changeset, there will be conflicts, but
   389 the `hg evolve` command handles it very well and uses `hg revert` logic to
   387 the `hg evolve` command handles it very well and uses `hg revert` logic to
   390 prevent any conflicts
   388 prevent any conflicts
   410   searching for changes
   408   searching for changes
   411   adding changesets
   409   adding changesets
   412   adding manifests
   410   adding manifests
   413   adding file changes
   411   adding file changes
   414   added 1 changesets with 1 changes to 1 files
   412   added 1 changesets with 1 changes to 1 files
   415   new changesets b756eb10ea73
       
   416   (run 'hg update' to get a working copy)
   413   (run 'hg update' to get a working copy)
   417 
   414 
   418   $ hg push ../public
   415   $ hg push ../public
   419   pushing to ../public
   416   pushing to ../public
   420   searching for changes
   417   searching for changes
   431 
   428 
   432   $ hg pull ../public
   429   $ hg pull ../public
   433   pulling from ../public
   430   pulling from ../public
   434   searching for changes
   431   searching for changes
   435   no changes found
   432   no changes found
   436   1 new phase-divergent changesets
   433   1 new bumped changesets
   437 
   434 
   438   $ hg glog
   435   $ hg glog
   439   @  7:2c3560aedead foo to bar
   436   @  9:d529f41744b3 foo to bar
   440   |   (bm) draft
   437   |   (bm) draft
   441   | o  6:b756eb10ea73 added bar to bar
   438   | o  7:6176b60d16d2 added bar to bar
   442   |/    () public
   439   |/    () public
   443   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   440   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   444   |   () public
   441   |   () public
   445   o  3:aa071e5554e3 added foo to foo
   442   o  3:aa071e5554e3 added foo to foo
   446   |   () public
   443   |   () public
   447   o  1:4d1169d82e47 modify a
   444   o  1:4d1169d82e47 modify a
   448   |   () public
   445   |   () public
   451 
   448 
   452 Resolving the new phase-divergence changeset using `hg evolve`
   449 Resolving the new phase-divergence changeset using `hg evolve`
   453 ---------------------------------------------------------------
   450 ---------------------------------------------------------------
   454 
   451 
   455   $ hg evolve --phase-divergent
   452   $ hg evolve --phase-divergent
   456   recreate:[7] foo to bar
   453   recreate:[9] foo to bar
   457   atop:[6] added bar to bar
   454   atop:[7] added bar to bar
   458   computing new diff
   455   computing new diff
   459   committed as 502e73736632
   456   committed as 73f67b6cf2c4
   460   working directory is now at 502e73736632
   457   working directory is now at 73f67b6cf2c4
   461 
   458 
   462   $ hg exp
   459   $ hg exp
   463   # HG changeset patch
   460   # HG changeset patch
   464   # User test
   461   # User test
   465   # Date 0 0
   462   # Date 0 0
   466   #      Thu Jan 01 00:00:00 1970 +0000
   463   #      Thu Jan 01 00:00:00 1970 +0000
   467   # Node ID 502e737366322886cf628276aa0a2796904453b4
   464   # Node ID 73f67b6cf2c428075c41d377f8651912e0d8cae2
   468   # Parent  b756eb10ea73ee4ba69c998e64a5c6e1005d74b5
   465   # Parent  6176b60d16d20d69c77bb27c2a1b79caec671612
   469   phase-divergent update to b756eb10ea73:
   466   bumped update to 6176b60d16d2:
   470   
   467   
   471   foo to bar
   468   foo to bar
   472   
   469   
   473   diff -r b756eb10ea73 -r 502e73736632 bar
   470   diff -r 6176b60d16d2 -r 73f67b6cf2c4 bar
   474   --- a/bar	Thu Jan 01 00:00:00 1970 +0000
   471   --- a/bar	Thu Jan 01 00:00:00 1970 +0000
   475   +++ b/bar	Thu Jan 01 00:00:00 1970 +0000
   472   +++ b/bar	Thu Jan 01 00:00:00 1970 +0000
   476   @@ -1,1 +1,1 @@
   473   @@ -1,1 +1,1 @@
   477   -bar
   474   -bar
   478   +foo
   475   +foo
   479 
   476 
   480   $ hg glog
   477   $ hg glog
   481   @  8:502e73736632 phase-divergent update to b756eb10ea73:
   478   @  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   482   |   (bm) draft
   479   |   (bm) draft
   483   o  6:b756eb10ea73 added bar to bar
   480   o  7:6176b60d16d2 added bar to bar
   484   |   () public
   481   |   () public
   485   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   482   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   486   |   () public
   483   |   () public
   487   o  3:aa071e5554e3 added foo to foo
   484   o  3:aa071e5554e3 added foo to foo
   488   |   () public
   485   |   () public
   489   o  1:4d1169d82e47 modify a
   486   o  1:4d1169d82e47 modify a
   490   |   () public
   487   |   () public
   499   searching for changes
   496   searching for changes
   500   adding changesets
   497   adding changesets
   501   adding manifests
   498   adding manifests
   502   adding file changes
   499   adding file changes
   503   added 1 changesets with 1 changes to 1 files
   500   added 1 changesets with 1 changes to 1 files
   504   2 new obsolescence markers
   501   3 new obsolescence markers
   505   $ hg push ../public
   502   $ hg push ../public
   506   pushing to ../public
   503   pushing to ../public
   507   searching for changes
   504   searching for changes
   508   adding changesets
   505   adding changesets
   509   adding manifests
   506   adding manifests
   510   adding file changes
   507   adding file changes
   511   added 1 changesets with 1 changes to 1 files
   508   added 1 changesets with 1 changes to 1 files
   512   2 new obsolescence markers
   509   3 new obsolescence markers
   513 
   510 
   514 Creating phase-divergence with divergent changeset and precursor having
   511 Creating phase-divergence with divergent changeset and precursor having
   515 different parents
   512 different parents
   516 -----------------------------------------------------------------------
   513 -----------------------------------------------------------------------
   517 
   514 
   538   searching for changes
   535   searching for changes
   539   adding changesets
   536   adding changesets
   540   adding manifests
   537   adding manifests
   541   adding file changes
   538   adding file changes
   542   added 2 changesets with 2 changes to 2 files
   539   added 2 changesets with 2 changes to 2 files
   543   2 new obsolescence markers
   540   3 new obsolescence markers
   544   new changesets 502e73736632:2352021b3785
       
   545   (run 'hg update' to get a working copy)
   541   (run 'hg update' to get a working copy)
   546   $ hg push ../public
   542   $ hg push ../public
   547   pushing to ../public
   543   pushing to ../public
   548   searching for changes
   544   searching for changes
   549   adding changesets
   545   adding changesets
   554 Alice like always dont care about Bob existence and rebases her changeset and
   550 Alice like always dont care about Bob existence and rebases her changeset and
   555 then pull from public repo creating phase divergence
   551 then pull from public repo creating phase divergence
   556 
   552 
   557   $ cd ../alice
   553   $ cd ../alice
   558   $ hg rebase -r . -d .^^^
   554   $ hg rebase -r . -d .^^^
   559   rebasing 9:2352021b3785 "added x to x" (bm tip)
   555   rebasing 11:ae81846887bc "added x to x" (tip bm)
   560 
   556 
   561   $ hg pull ../public
   557   $ hg pull ../public
   562   pulling from ../public
   558   pulling from ../public
   563   searching for changes
   559   searching for changes
   564   no changes found
   560   no changes found
   565   1 new phase-divergent changesets
   561   1 new bumped changesets
   566 
   562 
   567   $ hg obslog -r .
   563   $ hg obslog -r .
   568   @  334e300d6db5 (10) added x to x
   564   @  5cc37876a882 (12) added x to x
   569   |
   565   |
   570   o  2352021b3785 (9) added x to x
   566   o  ae81846887bc (11) added x to x
   571        rewritten(parent) as 334e300d6db5 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   567        rewritten(parent) as 5cc37876a882 by test (Thu Jan 01 00:00:00 1970 +0000)
   572   
   568   
   573   $ hg glog -r .^::
   569   $ hg glog -r .^::
   574   hg: parse error at 4: not a prefix: end
   570   hg: parse error at 4: not a prefix: end
   575   [255]
   571   [255]
   576 
   572 
   577 Using `hg evolve` to resolve phase-divergence
   573 Using `hg evolve` to resolve phase-divergence
   578 ---------------------------------------------
   574 ---------------------------------------------
   579 
   575 
   580   $ hg evolve --phase-divergent
   576   $ hg evolve --phase-divergent
   581   recreate:[10] added x to x
   577   recreate:[12] added x to x
   582   atop:[9] added x to x
   578   atop:[11] added x to x
   583   rebasing to destination parent: 502e73736632
   579   rebasing to destination parent: 73f67b6cf2c4
   584   (leaving bookmark bm)
   580   (leaving bookmark bm)
   585   computing new diff
   581   computing new diff
   586   committed as 2352021b3785
   582   committed as ae81846887bc
   587   working directory is now at 2352021b3785
   583   working directory is now at ae81846887bc
   588 
   584 
   589 XXX: we should move bookmark here
   585 XXX: we should move bookmark here
   590   $ hg glog
   586   $ hg glog
   591   @  9:2352021b3785 added x to x
   587   @  11:ae81846887bc added x to x
   592   |   (bm) public
   588   |   (bm) public
   593   o  8:502e73736632 phase-divergent update to b756eb10ea73:
   589   o  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   594   |   () public
   590   |   () public
   595   o  6:b756eb10ea73 added bar to bar
   591   o  7:6176b60d16d2 added bar to bar
   596   |   () public
   592   |   () public
   597   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   593   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   598   |   () public
   594   |   () public
   599   o  3:aa071e5554e3 added foo to foo
   595   o  3:aa071e5554e3 added foo to foo
   600   |   () public
   596   |   () public
   601   o  1:4d1169d82e47 modify a
   597   o  1:4d1169d82e47 modify a
   602   |   () public
   598   |   () public
   603   o  0:d3873e73d99e init
   599   o  0:d3873e73d99e init
   604       () public
   600       () public
   605 
   601 
   606   $ hg obslog -r . b1a0e143e32b --all --hidden
   602   $ hg obslog -r ae81846887bc --all --hidden
   607   x  b1a0e143e32b (11) added x to x
   603   x  14c7c60e138f (13) added x to x
   608   |    pruned using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   604   |    pruned by test (Thu Jan 01 00:00:00 1970 +0000)
   609   |
   605   |
   610   x  334e300d6db5 (10) added x to x
   606   x  5cc37876a882 (12) added x to x
   611   |    rewritten(parent) as b1a0e143e32b using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   607   |    rewritten(parent) as 14c7c60e138f by test (Thu Jan 01 00:00:00 1970 +0000)
   612   |
   608   |
   613   @  2352021b3785 (9) added x to x
   609   @  ae81846887bc (11) added x to x
   614        rewritten(parent) as 334e300d6db5 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   610        rewritten(parent) as 5cc37876a882 by test (Thu Jan 01 00:00:00 1970 +0000)
   615   
   611   
   616 
   612 
   617   $ hg exp
   613   $ hg exp
   618   # HG changeset patch
   614   # HG changeset patch
   619   # User test
   615   # User test
   620   # Date 0 0
   616   # Date 0 0
   621   #      Thu Jan 01 00:00:00 1970 +0000
   617   #      Thu Jan 01 00:00:00 1970 +0000
   622   # Node ID 2352021b37851be226ebed109b0eb6eada918566
   618   # Node ID ae81846887bc53e9ba17ea2172950677d1ba3a1d
   623   # Parent  502e737366322886cf628276aa0a2796904453b4
   619   # Parent  73f67b6cf2c428075c41d377f8651912e0d8cae2
   624   added x to x
   620   added x to x
   625   
   621   
   626   diff -r 502e73736632 -r 2352021b3785 x
   622   diff -r 73f67b6cf2c4 -r ae81846887bc x
   627   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   623   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   628   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   624   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   629   @@ -0,0 +1,1 @@
   625   @@ -0,0 +1,1 @@
   630   +x
   626   +x
   631 
   627 
   634 -----------------------------------------------------------------------------
   630 -----------------------------------------------------------------------------
   635 
   631 
   636 Alice is tired of pushing and pulling and will create phase-divergence locally
   632 Alice is tired of pushing and pulling and will create phase-divergence locally
   637 
   633 
   638   $ hg glog
   634   $ hg glog
   639   @  9:2352021b3785 added x to x
   635   @  11:ae81846887bc added x to x
   640   |   (bm) public
   636   |   (bm) public
   641   o  8:502e73736632 phase-divergent update to b756eb10ea73:
   637   o  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   642   |   () public
   638   |   () public
   643   o  6:b756eb10ea73 added bar to bar
   639   o  7:6176b60d16d2 added bar to bar
   644   |   () public
   640   |   () public
   645   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   641   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   646   |   () public
   642   |   () public
   647   o  3:aa071e5554e3 added foo to foo
   643   o  3:aa071e5554e3 added foo to foo
   648   |   () public
   644   |   () public
   649   o  1:4d1169d82e47 modify a
   645   o  1:4d1169d82e47 modify a
   650   |   () public
   646   |   () public
   654   $ echo y > y
   650   $ echo y > y
   655   $ echo foobar >> foo
   651   $ echo foobar >> foo
   656   $ hg add y
   652   $ hg add y
   657   $ hg ci -m "y to y and foobar to foo"
   653   $ hg ci -m "y to y and foobar to foo"
   658   $ hg rebase -r . -d .^^^
   654   $ hg rebase -r . -d .^^^
   659   rebasing 12:dc88f5aa9bc9 "y to y and foobar to foo" (tip)
   655   rebasing 14:43dd61d1a393 "y to y and foobar to foo" (tip)
   660 
   656 
   661   $ echo foo > y
   657   $ echo foo > y
   662   $ hg amend
   658   $ hg amend
   663 
   659 
   664 Alice making the old changeset public to have content-divergence
   660 Alice making the old changeset public to have content-divergence
   665 
   661 
   666   $ hg phase -r dc88f5aa9bc9 --public --hidden
   662   $ hg phase -r 43dd61d1a393 --public --hidden
   667   1 new phase-divergent changesets
   663   1 new bumped changesets
   668   $ hg glog
   664   $ hg glog
   669   @  14:13015a180eee y to y and foobar to foo
   665   @  17:694790041d7d y to y and foobar to foo
   670   |   () draft
   666   |   () draft
   671   | o  12:dc88f5aa9bc9 y to y and foobar to foo
   667   | o  14:43dd61d1a393 y to y and foobar to foo
   672   | |   () public
   668   | |   () public
   673   | o  9:2352021b3785 added x to x
   669   | o  11:ae81846887bc added x to x
   674   | |   (bm) public
   670   | |   (bm) public
   675   | o  8:502e73736632 phase-divergent update to b756eb10ea73:
   671   | o  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   676   |/    () public
   672   |/    () public
   677   o  6:b756eb10ea73 added bar to bar
   673   o  7:6176b60d16d2 added bar to bar
   678   |   () public
   674   |   () public
   679   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   675   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   680   |   () public
   676   |   () public
   681   o  3:aa071e5554e3 added foo to foo
   677   o  3:aa071e5554e3 added foo to foo
   682   |   () public
   678   |   () public
   683   o  1:4d1169d82e47 modify a
   679   o  1:4d1169d82e47 modify a
   684   |   () public
   680   |   () public
   685   o  0:d3873e73d99e init
   681   o  0:d3873e73d99e init
   686       () public
   682       () public
   687 
   683 
   688   $ hg obslog -r .
   684   $ hg obslog -r .
   689   @  13015a180eee (14) y to y and foobar to foo
   685   @  694790041d7d (17) y to y and foobar to foo
   690   |
   686   |
   691   x  211ab84d1689 (13) y to y and foobar to foo
   687   x  9195657992dd (15) y to y and foobar to foo
   692   |    rewritten(content) as 13015a180eee using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   688   |    rewritten(content) as 694790041d7d by test (Thu Jan 01 00:00:00 1970 +0000)
   693   |
   689   |
   694   o  dc88f5aa9bc9 (12) y to y and foobar to foo
   690   o  43dd61d1a393 (14) y to y and foobar to foo
   695        rewritten(parent) as 211ab84d1689 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   691        rewritten(parent) as 9195657992dd by test (Thu Jan 01 00:00:00 1970 +0000)
   696   
   692   
   697 Resolving divergence using `hg evolve`
   693 Resolving divergence using `hg evolve`
   698 -------------------------------------
   694 -------------------------------------
   699 
   695 
   700   $ hg evolve --phase-divergent
   696   $ hg evolve --phase-divergent
   701   recreate:[14] y to y and foobar to foo
   697   recreate:[17] y to y and foobar to foo
   702   atop:[12] y to y and foobar to foo
   698   atop:[14] y to y and foobar to foo
   703   rebasing to destination parent: 2352021b3785
   699   rebasing to destination parent: ae81846887bc
   704   computing new diff
   700   computing new diff
   705   committed as 8c2bb6fb44e9
   701   committed as 8da44ebfc416
   706   working directory is now at 8c2bb6fb44e9
   702   working directory is now at 8da44ebfc416
   707 
   703 
   708   $ hg exp
   704   $ hg exp
   709   # HG changeset patch
   705   # HG changeset patch
   710   # User test
   706   # User test
   711   # Date 0 0
   707   # Date 0 0
   712   #      Thu Jan 01 00:00:00 1970 +0000
   708   #      Thu Jan 01 00:00:00 1970 +0000
   713   # Node ID 8c2bb6fb44e9443c64b3a2a3d061272c8e25e6ce
   709   # Node ID 8da44ebfc416e3a6fc52c29f3a78e1d87c0d492e
   714   # Parent  dc88f5aa9bc90a6418899d267d9524205dfb429b
   710   # Parent  43dd61d1a393577a202514a924148969b8f74db8
   715   phase-divergent update to dc88f5aa9bc9:
   711   bumped update to 43dd61d1a393:
   716   
   712   
   717   y to y and foobar to foo
   713   y to y and foobar to foo
   718   
   714   
   719   diff -r dc88f5aa9bc9 -r 8c2bb6fb44e9 y
   715   diff -r 43dd61d1a393 -r 8da44ebfc416 y
   720   --- a/y	Thu Jan 01 00:00:00 1970 +0000
   716   --- a/y	Thu Jan 01 00:00:00 1970 +0000
   721   +++ b/y	Thu Jan 01 00:00:00 1970 +0000
   717   +++ b/y	Thu Jan 01 00:00:00 1970 +0000
   722   @@ -1,1 +1,1 @@
   718   @@ -1,1 +1,1 @@
   723   -y
   719   -y
   724   +foo
   720   +foo
   725 
   721 
   726   $ hg glog
   722   $ hg glog
   727   @  16:8c2bb6fb44e9 phase-divergent update to dc88f5aa9bc9:
   723   @  19:8da44ebfc416 bumped update to 43dd61d1a393:
   728   |   () draft
   724   |   () draft
   729   o  12:dc88f5aa9bc9 y to y and foobar to foo
   725   o  14:43dd61d1a393 y to y and foobar to foo
   730   |   () public
   726   |   () public
   731   o  9:2352021b3785 added x to x
   727   o  11:ae81846887bc added x to x
   732   |   (bm) public
   728   |   (bm) public
   733   o  8:502e73736632 phase-divergent update to b756eb10ea73:
   729   o  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   734   |   () public
   730   |   () public
   735   o  6:b756eb10ea73 added bar to bar
   731   o  7:6176b60d16d2 added bar to bar
   736   |   () public
   732   |   () public
   737   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   733   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   738   |   () public
   734   |   () public
   739   o  3:aa071e5554e3 added foo to foo
   735   o  3:aa071e5554e3 added foo to foo
   740   |   () public
   736   |   () public
   741   o  1:4d1169d82e47 modify a
   737   o  1:4d1169d82e47 modify a
   742   |   () public
   738   |   () public
   748 -----------------------------------------------------------------------------
   744 -----------------------------------------------------------------------------
   749 
   745 
   750   $ echo l > l
   746   $ echo l > l
   751   $ hg ci -Aqm "added l to l"
   747   $ hg ci -Aqm "added l to l"
   752   $ hg rebase -r . -d .^^^^
   748   $ hg rebase -r . -d .^^^^
   753   rebasing 17:f3794e5a91dc "added l to l" (tip)
   749   rebasing 20:515507bedb51 "added l to l" (tip)
   754   $ echo kl > l
   750   $ echo kl > l
   755   $ echo foo > x
   751   $ echo foo > x
   756   $ hg add x
   752   $ hg add x
   757   $ hg amend
   753   $ hg amend
   758 
   754 
   759   $ hg obslog -r .
   755   $ hg obslog -r .
   760   @  5fd38c0de46e (19) added l to l
   756   @  e3c208c26c0c (23) added l to l
   761   |
   757   |
   762   x  2bfd56949cf0 (18) added l to l
   758   x  c114000165ef (21) added l to l
   763   |    rewritten(content) as 5fd38c0de46e using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   759   |    rewritten(content) as e3c208c26c0c by test (Thu Jan 01 00:00:00 1970 +0000)
   764   |
   760   |
   765   x  f3794e5a91dc (17) added l to l
   761   x  515507bedb51 (20) added l to l
   766        rewritten(parent) as 2bfd56949cf0 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   762        rewritten(parent) as c114000165ef by test (Thu Jan 01 00:00:00 1970 +0000)
   767   
   763   
   768 
   764 
   769   $ hg phase -r f3794e5a91dc --public --hidden
   765   $ hg phase -r 515507bedb51 --public --hidden
   770   1 new phase-divergent changesets
   766   1 new bumped changesets
   771 
   767 
   772 Resolution using `hg evolve --phase-divergent`
   768 Resolution using `hg evolve --phase-divergent`
   773 ----------------------------------------------
   769 ----------------------------------------------
   774 
   770 
   775   $ hg evolve --phase-divergent
   771   $ hg evolve --phase-divergent
   776   recreate:[19] added l to l
   772   recreate:[23] added l to l
   777   atop:[17] added l to l
   773   atop:[20] added l to l
   778   rebasing to destination parent: 8c2bb6fb44e9
   774   rebasing to destination parent: 8da44ebfc416
   779   merging x
   775   merging x
   780   warning: conflicts while merging x! (edit, then use 'hg resolve --mark')
   776   warning: conflicts while merging x! (edit, then use 'hg resolve --mark')
   781   fix conflicts and see `hg help evolve.interrupted`
   777   fix conflicts and see `hg help evolve.interrupted`
   782   [1]
   778   [1]
   783 
   779 
   784   $ hg diff
   780   $ hg diff
   785   diff -r 8c2bb6fb44e9 l
   781   diff -r 8da44ebfc416 l
   786   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   782   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   787   +++ b/l	Thu Jan 01 00:00:00 1970 +0000
   783   +++ b/l	Thu Jan 01 00:00:00 1970 +0000
   788   @@ -0,0 +1,1 @@
   784   @@ -0,0 +1,1 @@
   789   +kl
   785   +kl
   790   diff -r 8c2bb6fb44e9 x
   786   diff -r 8da44ebfc416 x
   791   --- a/x	Thu Jan 01 00:00:00 1970 +0000
   787   --- a/x	Thu Jan 01 00:00:00 1970 +0000
   792   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   788   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   793   @@ -1,1 +1,5 @@
   789   @@ -1,1 +1,5 @@
   794   +<<<<<<< destination: 8c2bb6fb44e9 - test: phase-divergent update to dc88f5aa9...
   790   +<<<<<<< destination: 8da44ebfc416 - test: bumped update to 43dd61d1a393:
   795    x
   791    x
   796   +=======
   792   +=======
   797   +foo
   793   +foo
   798   +>>>>>>> evolving:    5fd38c0de46e - test: added l to l
   794   +>>>>>>> evolving:    e3c208c26c0c - test: added l to l
   799 
   795 
   800   $ echo foo > x
   796   $ echo foo > x
   801 
   797 
   802   $ hg resolve -m
   798   $ hg resolve -m
   803   (no more unresolved files)
   799   (no more unresolved files)
   804   continue: hg evolve --continue
   800   continue: hg evolve --continue
   805 
   801 
   806   $ hg evolve --continue
   802   $ hg evolve --continue
   807   evolving 19:5fd38c0de46e "added l to l"
   803   evolving 23:e3c208c26c0c "added l to l"
   808   computing new diff
   804   computing new diff
   809   committed as e3090241a10c
   805   committed as 01e0d829c156
   810   working directory is now at e3090241a10c
   806   working directory is now at 01e0d829c156
   811 
   807 
   812   $ hg glog
   808   $ hg glog
   813   @  21:e3090241a10c phase-divergent update to f3794e5a91dc:
   809   @  25:01e0d829c156 bumped update to 515507bedb51:
   814   |   () draft
   810   |   () draft
   815   o  17:f3794e5a91dc added l to l
   811   o  20:515507bedb51 added l to l
   816   |   () public
   812   |   () public
   817   o  16:8c2bb6fb44e9 phase-divergent update to dc88f5aa9bc9:
   813   o  19:8da44ebfc416 bumped update to 43dd61d1a393:
   818   |   () public
   814   |   () public
   819   o  12:dc88f5aa9bc9 y to y and foobar to foo
   815   o  14:43dd61d1a393 y to y and foobar to foo
   820   |   () public
   816   |   () public
   821   o  9:2352021b3785 added x to x
   817   o  11:ae81846887bc added x to x
   822   |   (bm) public
   818   |   (bm) public
   823   o  8:502e73736632 phase-divergent update to b756eb10ea73:
   819   o  10:73f67b6cf2c4 bumped update to 6176b60d16d2:
   824   |   () public
   820   |   () public
   825   o  6:b756eb10ea73 added bar to bar
   821   o  7:6176b60d16d2 added bar to bar
   826   |   () public
   822   |   () public
   827   o  5:3d62500c673d phase-divergent update to aa071e5554e3:
   823   o  6:bdf645eb43bb bumped update to aa071e5554e3:
   828   |   () public
   824   |   () public
   829   o  3:aa071e5554e3 added foo to foo
   825   o  3:aa071e5554e3 added foo to foo
   830   |   () public
   826   |   () public
   831   o  1:4d1169d82e47 modify a
   827   o  1:4d1169d82e47 modify a
   832   |   () public
   828   |   () public
   836   $ hg exp
   832   $ hg exp
   837   # HG changeset patch
   833   # HG changeset patch
   838   # User test
   834   # User test
   839   # Date 0 0
   835   # Date 0 0
   840   #      Thu Jan 01 00:00:00 1970 +0000
   836   #      Thu Jan 01 00:00:00 1970 +0000
   841   # Node ID e3090241a10c320b6132e4673915fd6b19c0de39
   837   # Node ID 01e0d829c1560d8297062062dff671e272439e38
   842   # Parent  f3794e5a91dc1d4d36fee5c423386b19433a1f48
   838   # Parent  515507bedb512ac15258c2ab44809645139055ef
   843   phase-divergent update to f3794e5a91dc:
   839   bumped update to 515507bedb51:
   844   
   840   
   845   added l to l
   841   added l to l
   846   
   842   
   847   diff -r f3794e5a91dc -r e3090241a10c l
   843   diff -r 515507bedb51 -r 01e0d829c156 l
   848   --- a/l	Thu Jan 01 00:00:00 1970 +0000
   844   --- a/l	Thu Jan 01 00:00:00 1970 +0000
   849   +++ b/l	Thu Jan 01 00:00:00 1970 +0000
   845   +++ b/l	Thu Jan 01 00:00:00 1970 +0000
   850   @@ -1,1 +1,1 @@
   846   @@ -1,1 +1,1 @@
   851   -l
   847   -l
   852   +kl
   848   +kl
   853   diff -r f3794e5a91dc -r e3090241a10c x
   849   diff -r 515507bedb51 -r 01e0d829c156 x
   854   --- a/x	Thu Jan 01 00:00:00 1970 +0000
   850   --- a/x	Thu Jan 01 00:00:00 1970 +0000
   855   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   851   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   856   @@ -1,1 +1,1 @@
   852   @@ -1,1 +1,1 @@
   857   -x
   853   -x
   858   +foo
   854   +foo
   859 
   855 
   860 Creating phase divergence when couple of changesets are folded into one
   856 Creating phase divergence when couple of changesets are folded into one
   861 ------------------------------------------------------------------------
   857 ------------------------------------------------------------------------
   862 
   858 
   863   $ hg glog -r .
   859   $ hg glog -r .
   864   @  21:e3090241a10c phase-divergent update to f3794e5a91dc:
   860   @  25:01e0d829c156 bumped update to 515507bedb51:
   865   |   () draft
   861   |   () draft
   866   ~
   862   ~
   867   $ echo f > f
   863   $ echo f > f
   868   $ hg ci -Aqm "added f"
   864   $ hg ci -Aqm "added f"
   869   $ echo g > g
   865   $ echo g > g
   873   2 changesets folded
   869   2 changesets folded
   874   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   870   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   875 
   871 
   876   $ hg evolve --list
   872   $ hg evolve --list
   877 
   873 
   878   $ hg phase -r 428f7900a969 --public --hidden
   874   $ hg phase -r e86ee52bfd76 --public --hidden
   879   1 new phase-divergent changesets
   875   1 new bumped changesets
   880 
   876 
   881   $ hg glog -r f3794e5a91dc::
   877   $ hg glog -r 515507bedb51::
   882   @  24:e450d05b7d27 added g
   878   @  28:d83c51bdc098 added g
   883   |   () draft
   879   |   () draft
   884   | o  23:428f7900a969 added g
   880   | o  27:e86ee52bfd76 added g
   885   | |   () public
   881   | |   () public
   886   | o  22:21ae52e414e6 added f
   882   | o  26:d3c143cd906e added f
   887   |/    () public
   883   |/    () public
   888   o  21:e3090241a10c phase-divergent update to f3794e5a91dc:
   884   o  25:01e0d829c156 bumped update to 515507bedb51:
   889   |   () public
   885   |   () public
   890   o  17:f3794e5a91dc added l to l
   886   o  20:515507bedb51 added l to l
   891   |   () public
   887   |   () public
   892   ~
   888   ~
   893 
   889 
   894   $ hg evolve --list
   890   $ hg evolve --list
   895   e450d05b7d27: added g
   891   d83c51bdc098: added g
   896     phase-divergent: 21ae52e414e6 (immutable precursor)
   892     bumped: d3c143cd906e (immutable precursor)
   897     phase-divergent: 428f7900a969 (immutable precursor)
   893     bumped: e86ee52bfd76 (immutable precursor)
   898   
   894   
   899 Resolving phase divergence using `hg evolve`
   895 Resolving phase divergence using `hg evolve`
   900 
   896 
   901   $ hg evolve --phase-divergent --all
   897   $ hg evolve --phase-divergent --all
   902   recreate:[24] added g
   898   recreate:[28] added g
   903   atop:[23] added g
   899   atop:[27] added g
   904   rebasing to destination parent: 21ae52e414e6
   900   rebasing to destination parent: d3c143cd906e
   905   computing new diff
   901   computing new diff
   906   committed as 428f7900a969
   902   committed as e86ee52bfd76
   907   working directory is now at 428f7900a969
   903   working directory is now at e86ee52bfd76
   908 
   904 
   909   $ hg glog -r f3794e5a91dc::
   905   $ hg glog -r 515507bedb51::
   910   @  23:428f7900a969 added g
   906   @  27:e86ee52bfd76 added g
   911   |   () public
   907   |   () public
   912   o  22:21ae52e414e6 added f
   908   o  26:d3c143cd906e added f
   913   |   () public
   909   |   () public
   914   o  21:e3090241a10c phase-divergent update to f3794e5a91dc:
   910   o  25:01e0d829c156 bumped update to 515507bedb51:
   915   |   () public
   911   |   () public
   916   o  17:f3794e5a91dc added l to l
   912   o  20:515507bedb51 added l to l
   917   |   () public
   913   |   () public
   918   ~
   914   ~
   919 
   915 
   920 When the public changesets is splitted causing phase-divergence
   916 When the public changesets is splitted causing phase-divergence
   921 ---------------------------------------------------------------
   917 ---------------------------------------------------------------
   922 
   918 
   923   $ echo m > m
   919   $ echo m > m
   924   $ echo n > n
   920   $ echo n > n
   925   $ hg ci -Aqm "added m and n"
   921   $ hg ci -Aqm "added m and n"
   926 
   922 
   927   $ hg glog -r 21ae52e414e6::
   923   $ hg glog -r d3c143cd906e::
   928   @  26:849cee0a874b added m and n
   924   @  30:bbb1ce6e7cb5 added m and n
   929   |   () draft
   925   |   () draft
   930   o  23:428f7900a969 added g
   926   o  27:e86ee52bfd76 added g
   931   |   () public
   927   |   () public
   932   o  22:21ae52e414e6 added f
   928   o  26:d3c143cd906e added f
   933   |   () public
   929   |   () public
   934   ~
   930   ~
   935 
   931 
   936   $ hg prev
   932   $ hg prev
   937   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
   933   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
   938   [23] added g
   934   [27] added g
   939   $ echo m > m
   935   $ echo m > m
   940   $ hg ci -Aqm "added m"
   936   $ hg ci -Aqm "added m"
   941   $ echo n > n
   937   $ echo n > n
   942   $ hg ci -Aqm "added n"
   938   $ hg ci -Aqm "added n"
   943 
   939 
   944   $ hg glog -r 428f7900a969::
   940   $ hg glog -r e86ee52bfd76::
   945   @  28:63ccb8ea7cae added n
   941   @  32:e1e84fb7bd8c added n
   946   |   () draft
   942   |   () draft
   947   o  27:f313e2b90e70 added m
   943   o  31:38f8157363bc added m
   948   |   () draft
   944   |   () draft
   949   | o  26:849cee0a874b added m and n
   945   | o  30:bbb1ce6e7cb5 added m and n
   950   |/    () draft
   946   |/    () draft
   951   o  23:428f7900a969 added g
   947   o  27:e86ee52bfd76 added g
   952   |   () public
   948   |   () public
   953   ~
   949   ~
   954 
   950 
   955   $ hg prune -r 849cee0a874b --succ f313e2b90e70 --succ 63ccb8ea7cae --split
   951   $ hg prune -r bbb1ce6e7cb5 --succ 38f8157363bc --succ e1e84fb7bd8c --split
   956   1 changesets pruned
   952   1 changesets pruned
   957 
   953 
   958   $ hg phase -r 849cee0a874b --hidden --public
   954   $ hg phase -r bbb1ce6e7cb5 --hidden --public
   959   2 new phase-divergent changesets
   955   2 new bumped changesets
   960 
   956 
   961   $ hg glog -r 428f7900a969::
   957   $ hg glog -r e86ee52bfd76::
   962   @  28:63ccb8ea7cae added n
   958   @  32:e1e84fb7bd8c added n
   963   |   () draft
   959   |   () draft
   964   o  27:f313e2b90e70 added m
   960   o  31:38f8157363bc added m
   965   |   () draft
   961   |   () draft
   966   | o  26:849cee0a874b added m and n
   962   | o  30:bbb1ce6e7cb5 added m and n
   967   |/    () public
   963   |/    () public
   968   o  23:428f7900a969 added g
   964   o  27:e86ee52bfd76 added g
   969   |   () public
   965   |   () public
   970   ~
   966   ~
   971 
   967 
   972   $ hg evolve --all --phase-divergent
   968   $ hg evolve --all --phase-divergent
   973   recreate:[27] added m
   969   recreate:[31] added m
   974   atop:[26] added m and n
   970   atop:[30] added m and n
   975   computing new diff
   971   computing new diff
   976   committed as 870e1c3eddc3
   972   committed as 26c0e0acbf58
   977   recreate:[28] added n
   973   recreate:[32] added n
   978   atop:[26] added m and n
   974   atop:[30] added m and n
   979   rebasing to destination parent: 428f7900a969
   975   rebasing to destination parent: e86ee52bfd76
   980   computing new diff
   976   computing new diff
   981   committed as 154b0179fb9b
   977   committed as 167994483a30
   982   working directory is now at 154b0179fb9b
   978   working directory is now at 167994483a30
   983 
   979 
   984 XXX: this is messy, we should solve things in better way
   980 XXX: this is messy, we should solve things in better way
   985   $ hg glog -r 428f7900a969:: --hidden
   981   $ hg glog -r e86ee52bfd76:: --hidden
   986   @  31:154b0179fb9b phase-divergent update to 849cee0a874b:
   982   @  35:167994483a30 bumped update to bbb1ce6e7cb5:
   987   |   () draft
   983   |   () draft
   988   | x  30:1ebf33547a82 added n
   984   | x  34:ebca40be1c77 added n
   989   | |   () draft
   985   | |   () draft
   990   +---o  29:870e1c3eddc3 phase-divergent update to 849cee0a874b:
   986   +---o  33:26c0e0acbf58 bumped update to bbb1ce6e7cb5:
   991   | |     () draft
   987   | |     () draft
   992   | | x  28:63ccb8ea7cae added n
   988   | | x  32:e1e84fb7bd8c added n
   993   | | |   () draft
   989   | | |   () draft
   994   | | x  27:f313e2b90e70 added m
   990   | | x  31:38f8157363bc added m
   995   | |/    () draft
   991   | |/    () draft
   996   o |  26:849cee0a874b added m and n
   992   o |  30:bbb1ce6e7cb5 added m and n
   997   |/    () public
   993   |/    () public
   998   o  23:428f7900a969 added g
   994   o  27:e86ee52bfd76 added g
   999   |   () public
   995   |   () public
  1000   ~
   996   ~
  1001 
   997 
  1002 XXX: not sure this is the correct
   998 XXX: not sure this is the correct
  1003   $ hg exp 154b0179fb9b
   999   $ hg exp 167994483a30
  1004   # HG changeset patch
  1000   # HG changeset patch
  1005   # User test
  1001   # User test
  1006   # Date 0 0
  1002   # Date 0 0
  1007   #      Thu Jan 01 00:00:00 1970 +0000
  1003   #      Thu Jan 01 00:00:00 1970 +0000
  1008   # Node ID 154b0179fb9b53d2f853d6ba04740bb3d7a5cabe
  1004   # Node ID 167994483a3052f6ea76aa4ba54bd0d6ecd03506
  1009   # Parent  849cee0a874be7c4e75dfacb5ad72aa5696951ba
  1005   # Parent  bbb1ce6e7cb56a4d0ddd9b602492c1e79f2beaf5
  1010   phase-divergent update to 849cee0a874b:
  1006   bumped update to bbb1ce6e7cb5:
  1011   
  1007   
  1012   added n
  1008   added n
  1013   
  1009   
  1014   diff -r 849cee0a874b -r 154b0179fb9b m
  1010   diff -r bbb1ce6e7cb5 -r 167994483a30 m
  1015   --- a/m	Thu Jan 01 00:00:00 1970 +0000
  1011   --- a/m	Thu Jan 01 00:00:00 1970 +0000
  1016   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1012   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1017   @@ -1,1 +0,0 @@
  1013   @@ -1,1 +0,0 @@
  1018   -m
  1014   -m
  1019 
  1015 
  1020 XXX: not sure this is correct
  1016 XXX: not sure this is correct
  1021   $ hg exp 870e1c3eddc3
  1017   $ hg exp 26c0e0acbf58 --hidden
  1022   # HG changeset patch
  1018   # HG changeset patch
  1023   # User test
  1019   # User test
  1024   # Date 0 0
  1020   # Date 0 0
  1025   #      Thu Jan 01 00:00:00 1970 +0000
  1021   #      Thu Jan 01 00:00:00 1970 +0000
  1026   # Node ID 870e1c3eddc34cc475e8e13d2fe1934210c1937e
  1022   # Node ID 26c0e0acbf58e4bd2a2414e43b7d2d8aefdbba60
  1027   # Parent  849cee0a874be7c4e75dfacb5ad72aa5696951ba
  1023   # Parent  bbb1ce6e7cb56a4d0ddd9b602492c1e79f2beaf5
  1028   phase-divergent update to 849cee0a874b:
  1024   bumped update to bbb1ce6e7cb5:
  1029   
  1025   
  1030   added m
  1026   added m
  1031   
  1027   
  1032   diff -r 849cee0a874b -r 870e1c3eddc3 n
  1028   diff -r bbb1ce6e7cb5 -r 26c0e0acbf58 n
  1033   --- a/n	Thu Jan 01 00:00:00 1970 +0000
  1029   --- a/n	Thu Jan 01 00:00:00 1970 +0000
  1034   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1030   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1035   @@ -1,1 +0,0 @@
  1031   @@ -1,1 +0,0 @@
  1036   -n
  1032   -n
  1037 
  1033 
  1042   $ echo q > q
  1038   $ echo q > q
  1043   $ hg ci -Aqm "added p and q"
  1039   $ hg ci -Aqm "added p and q"
  1044 
  1040 
  1045   $ hg prev
  1041   $ hg prev
  1046   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
  1042   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
  1047   [31] phase-divergent update to 849cee0a874b:
  1043   [35] bumped update to bbb1ce6e7cb5:
  1048   $ echo p > p
  1044   $ echo p > p
  1049   $ hg ci -Aqm "added p"
  1045   $ hg ci -Aqm "added p"
  1050   $ hg prev
  1046   $ hg prev
  1051   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1047   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1052   [31] phase-divergent update to 849cee0a874b:
  1048   [35] bumped update to bbb1ce6e7cb5:
  1053   $ echo q > q
  1049   $ echo q > q
  1054   $ hg ci -Aqm "added q"
  1050   $ hg ci -Aqm "added q"
  1055 
  1051 
  1056   $ hg glog -r 154b0179fb9b::
  1052   $ hg glog -r 167994483a30::
  1057   @  34:e046341aa97c added q
  1053   @  38:25009377929c added q
  1058   |   () draft
  1054   |   () draft
  1059   | o  33:6f8c250eecff added p
  1055   | o  37:a27f3cc92c8f added p
  1060   |/    () draft
  1056   |/    () draft
  1061   | o  32:8a70f55b2af3 added p and q
  1057   | o  36:f695c2c8812d added p and q
  1062   |/    () draft
  1058   |/    () draft
  1063   o  31:154b0179fb9b phase-divergent update to 849cee0a874b:
  1059   o  35:167994483a30 bumped update to bbb1ce6e7cb5:
  1064   |   () draft
  1060   |   () draft
  1065   ~
  1061   ~
  1066 
  1062 
  1067   $ hg prune -r 8a70f55b2af3 --succ 6f8c250eecff --succ e046341aa97c --split
  1063   $ hg prune -r f695c2c8812d --succ a27f3cc92c8f --succ 25009377929c --split
  1068   1 changesets pruned
  1064   1 changesets pruned
  1069 
  1065 
  1070   $ hg phase -r 8a70f55b2af3 --public --hidden
  1066   $ hg phase -r f695c2c8812d --public --hidden
  1071   2 new phase-divergent changesets
  1067   2 new bumped changesets
  1072 
  1068 
  1073   $ hg glog -r 154b0179fb9b::
  1069   $ hg glog -r 167994483a30::
  1074   @  34:e046341aa97c added q
  1070   @  38:25009377929c added q
  1075   |   () draft
  1071   |   () draft
  1076   | o  33:6f8c250eecff added p
  1072   | o  37:a27f3cc92c8f added p
  1077   |/    () draft
  1073   |/    () draft
  1078   | o  32:8a70f55b2af3 added p and q
  1074   | o  36:f695c2c8812d added p and q
  1079   |/    () public
  1075   |/    () public
  1080   o  31:154b0179fb9b phase-divergent update to 849cee0a874b:
  1076   o  35:167994483a30 bumped update to bbb1ce6e7cb5:
  1081   |   () public
  1077   |   () public
  1082   ~
  1078   ~
  1083 
  1079 
  1084   $ hg evolve --list
  1080   $ hg evolve --list
  1085   6f8c250eecff: added p
  1081   a27f3cc92c8f: added p
  1086     phase-divergent: 8a70f55b2af3 (immutable precursor)
  1082     bumped: f695c2c8812d (immutable precursor)
  1087   
  1083   
  1088   e046341aa97c: added q
  1084   25009377929c: added q
  1089     phase-divergent: 8a70f55b2af3 (immutable precursor)
  1085     bumped: f695c2c8812d (immutable precursor)
  1090   
  1086   
  1091   $ hg evolve --all --phase-divergent
  1087   $ hg evolve --all --phase-divergent
  1092   recreate:[33] added p
  1088   recreate:[37] added p
  1093   atop:[32] added p and q
  1089   atop:[36] added p and q
  1094   computing new diff
  1090   computing new diff
  1095   committed as f3e41d89b3c5
  1091   committed as abd19926ab01
  1096   recreate:[34] added q
  1092   recreate:[38] added q
  1097   atop:[32] added p and q
  1093   atop:[36] added p and q
  1098   computing new diff
  1094   computing new diff
  1099   committed as 605c306d4f87
  1095   committed as 12c31db4edf9
  1100   working directory is now at 605c306d4f87
  1096   working directory is now at 12c31db4edf9
  1101 
  1097 
  1102   $ hg glog -r 154b0179fb9b:: --hidden
  1098   $ hg glog -r 167994483a30:: --hidden
  1103   @  36:605c306d4f87 phase-divergent update to 8a70f55b2af3:
  1099   @  40:12c31db4edf9 bumped update to f695c2c8812d:
  1104   |   () draft
  1100   |   () draft
  1105   | o  35:f3e41d89b3c5 phase-divergent update to 8a70f55b2af3:
  1101   | o  39:abd19926ab01 bumped update to f695c2c8812d:
  1106   |/    () draft
  1102   |/    () draft
  1107   | x  34:e046341aa97c added q
  1103   | x  38:25009377929c added q
  1108   | |   () draft
  1104   | |   () draft
  1109   | | x  33:6f8c250eecff added p
  1105   | | x  37:a27f3cc92c8f added p
  1110   | |/    () draft
  1106   | |/    () draft
  1111   o |  32:8a70f55b2af3 added p and q
  1107   o |  36:f695c2c8812d added p and q
  1112   |/    () public
  1108   |/    () public
  1113   o  31:154b0179fb9b phase-divergent update to 849cee0a874b:
  1109   o  35:167994483a30 bumped update to bbb1ce6e7cb5:
  1114   |   () public
  1110   |   () public
  1115   ~
  1111   ~
  1116 
  1112 
  1117 XXX: not sure this is correct
  1113 XXX: not sure this is correct
  1118   $ hg exp 605c306d4f87
  1114   $ hg exp 12c31db4edf9
  1119   # HG changeset patch
  1115   # HG changeset patch
  1120   # User test
  1116   # User test
  1121   # Date 0 0
  1117   # Date 0 0
  1122   #      Thu Jan 01 00:00:00 1970 +0000
  1118   #      Thu Jan 01 00:00:00 1970 +0000
  1123   # Node ID 605c306d4f87fccfdb5e7dd1c750b6d4f813defb
  1119   # Node ID 12c31db4edf9a889e3ce9986f484bbf939f4fb42
  1124   # Parent  8a70f55b2af35452916dc89401a5ecf6553646a5
  1120   # Parent  f695c2c8812d12a910a47440ee189e553326a1c8
  1125   phase-divergent update to 8a70f55b2af3:
  1121   bumped update to f695c2c8812d:
  1126   
  1122   
  1127   added q
  1123   added q
  1128   
  1124   
  1129   diff -r 8a70f55b2af3 -r 605c306d4f87 p
  1125   diff -r f695c2c8812d -r 12c31db4edf9 p
  1130   --- a/p	Thu Jan 01 00:00:00 1970 +0000
  1126   --- a/p	Thu Jan 01 00:00:00 1970 +0000
  1131   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1127   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1132   @@ -1,1 +0,0 @@
  1128   @@ -1,1 +0,0 @@
  1133   -p
  1129   -p
  1134 
  1130 
  1135 XXX: not sure this is correct
  1131 XXX: not sure this is correct
  1136   $ hg exp f3e41d89b3c5
  1132   $ hg exp abd19926ab01
  1137   # HG changeset patch
  1133   # HG changeset patch
  1138   # User test
  1134   # User test
  1139   # Date 0 0
  1135   # Date 0 0
  1140   #      Thu Jan 01 00:00:00 1970 +0000
  1136   #      Thu Jan 01 00:00:00 1970 +0000
  1141   # Node ID f3e41d89b3c5f6ee49ccc734045856d7b025f048
  1137   # Node ID abd19926ab0109f43f38e732cfa8ae747e2e4187
  1142   # Parent  8a70f55b2af35452916dc89401a5ecf6553646a5
  1138   # Parent  f695c2c8812d12a910a47440ee189e553326a1c8
  1143   phase-divergent update to 8a70f55b2af3:
  1139   bumped update to f695c2c8812d:
  1144   
  1140   
  1145   added p
  1141   added p
  1146   
  1142   
  1147   diff -r 8a70f55b2af3 -r f3e41d89b3c5 q
  1143   diff -r f695c2c8812d -r abd19926ab01 q
  1148   --- a/q	Thu Jan 01 00:00:00 1970 +0000
  1144   --- a/q	Thu Jan 01 00:00:00 1970 +0000
  1149   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1145   +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1150   @@ -1,1 +0,0 @@
  1146   @@ -1,1 +0,0 @@
  1151   -q
  1147   -q
  1152 
  1148 
  1153 Testing the evolution of a phase-divergent merge with no conflicts
  1149 Testing the evolution of a phase-divergent merge with no conflicts
  1154 ------------------------------------------------------------------
  1150 ------------------------------------------------------------------
  1155 
  1151 
  1156   $ hg glog -r 154b0179fb9b::
  1152   $ hg glog -r 167994483a30::
  1157   @  36:605c306d4f87 phase-divergent update to 8a70f55b2af3:
  1153   @  40:12c31db4edf9 bumped update to f695c2c8812d:
  1158   |   () draft
  1154   |   () draft
  1159   | o  35:f3e41d89b3c5 phase-divergent update to 8a70f55b2af3:
  1155   | o  39:abd19926ab01 bumped update to f695c2c8812d:
  1160   |/    () draft
  1156   |/    () draft
  1161   o  32:8a70f55b2af3 added p and q
  1157   o  36:f695c2c8812d added p and q
  1162   |   () public
  1158   |   () public
  1163   o  31:154b0179fb9b phase-divergent update to 849cee0a874b:
  1159   o  35:167994483a30 bumped update to bbb1ce6e7cb5:
  1164   |   () public
  1160   |   () public
  1165   ~
  1161   ~
  1166 
  1162 
  1167   $ echo h > h
  1163   $ echo h > h
  1168   $ hg ci -Aqm "added h"
  1164   $ hg ci -Aqm "added h"
  1169   $ hg prev
  1165   $ hg prev
  1170   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1166   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1171   [36] phase-divergent update to 8a70f55b2af3:
  1167   [40] bumped update to f695c2c8812d:
  1172   $ echo i > i
  1168   $ echo i > i
  1173   $ hg ci -Aqm "added i"
  1169   $ hg ci -Aqm "added i"
  1174   $ hg merge -r ef8c23f37b55
  1170   $ hg merge -r 'desc("added h")'
  1175   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1171   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1176   (branch merge, don't forget to commit)
  1172   (branch merge, don't forget to commit)
  1177   $ hg ci -m "merge h and i"
  1173   $ hg ci -m "merge h and i"
  1178 
  1174 
  1179   $ hg glog -r 605c306d4f87::
  1175   $ hg glog -r 12c31db4edf9::
  1180   @    39:12ebe0d625d7 merge h and i
  1176   @    43:98ce636fa344 merge h and i
  1181   |\    () draft
  1177   |\    () draft
  1182   | o  38:9bb561db4230 added i
  1178   | o  42:c13ebd59dd4e added i
  1183   | |   () draft
  1179   | |   () draft
  1184   o |  37:ef8c23f37b55 added h
  1180   o |  41:10bb6c8a838f added h
  1185   |/    () draft
  1181   |/    () draft
  1186   o  36:605c306d4f87 phase-divergent update to 8a70f55b2af3:
  1182   o  40:12c31db4edf9 bumped update to f695c2c8812d:
  1187   |   () draft
  1183   |   () draft
  1188   ~
  1184   ~
  1189 
  1185 
  1190   $ hg up ef8c23f37b55
  1186   $ hg up 10bb6c8a838f
  1191   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1187   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1192   $ hg merge -r 9bb561db4230
  1188   $ hg merge -r c13ebd59dd4e
  1193   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1189   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1194   (branch merge, don't forget to commit)
  1190   (branch merge, don't forget to commit)
  1195   $ hg ci -m "merge h and i successor"
  1191   $ hg ci -m "merge h and i successor"
  1196   created new head
  1192   created new head
  1197   $ hg glog -r 605c306d4f87::
  1193   $ hg glog -r 12c31db4edf9::
  1198   @    40:d2aeda868461 merge h and i successor
  1194   @    44:57c7c43469f2 merge h and i successor
  1199   |\    () draft
  1195   |\    () draft
  1200   +---o  39:12ebe0d625d7 merge h and i
  1196   +---o  43:98ce636fa344 merge h and i
  1201   | |/    () draft
  1197   | |/    () draft
  1202   | o  38:9bb561db4230 added i
  1198   | o  42:c13ebd59dd4e added i
  1203   | |   () draft
  1199   | |   () draft
  1204   o |  37:ef8c23f37b55 added h
  1200   o |  41:10bb6c8a838f added h
  1205   |/    () draft
  1201   |/    () draft
  1206   o  36:605c306d4f87 phase-divergent update to 8a70f55b2af3:
  1202   o  40:12c31db4edf9 bumped update to f695c2c8812d:
  1207   |   () draft
  1203   |   () draft
  1208   ~
  1204   ~
  1209 
  1205 
  1210   $ hg prune -r 12ebe0d625d7 --succ .
  1206   $ hg prune -r 98ce636fa344 --succ .
  1211   1 changesets pruned
  1207   1 changesets pruned
  1212 
  1208 
  1213   $ hg phase 12ebe0d625d7 --hidden --public
  1209   $ hg phase 98ce636fa344 --hidden --public
  1214   1 new phase-divergent changesets
  1210   1 new bumped changesets
  1215 
  1211 
  1216 Resolution of phase-divergent merge commit using `hg evolve`
  1212 Resolution of phase-divergent merge commit using `hg evolve`
  1217 
  1213 
  1218 XXX: we should handle phase-divergent merges
  1214 XXX: we should handle phase-divergent merges
  1219   $ hg evolve --phase-divergent
  1215   $ hg evolve --phase-divergent
  1220   skipping d2aeda868461 : we do not handle merge yet
  1216   skipping 57c7c43469f2 : we do not handle merge yet