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