obshistory: use successorsandmarkers() from obsutil, drop local variant
It's been in core since 4.4 and is identical to the version removed by this
patch, except it returns None if ctx is not obsolete.
=================================================Teststheresolutionofcontentdivergence:stack=================================================Thisfileintendtocovercasewithstacksofdivergentchangesets$cat>>$HGRCPATH<<EOF>[alias]>glog=log-GT"{rev}:{node|short}{desc|firstline}\n ({bookmarks}) [{branch}] {phase}">[phases]>publish=False>[extensions]>strip=>rebase=>EOF$echo"evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/">>$HGRCPATHResolvingcontent-divergenceofastackwithsameparents---------------------------------------------------------$hginitstacktest$cdstacktest$echo".*\.orig">.hgignore$hgadd.hgignore$hgci-m"added hgignore"$forchinabcd;doechofoo>$ch;hgadd$ch;hgci-qm"added "$ch;done;$hgglog@4:c41c793e0ef1addedd|()[default]drafto3:ca1b80f7960aaddedc|()[default]drafto2:b1661037fa25addedb|()[default]drafto1:c7586e2a9264addeda|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$cd..$hginitstack2$cdstack2$hgpull../stacktestpullingfrom../stacktestrequestingallchangesaddingchangesetsaddingmanifestsaddingfilechangesadded5changesetswith5changesto5filesnewchangesets8fa14d15e168:c41c793e0ef1(5drafts)(run'hg update'togetaworkingcopy)$hgglogo4:c41c793e0ef1addedd|()[default]drafto3:ca1b80f7960aaddedc|()[default]drafto2:b1661037fa25addedb|()[default]drafto1:c7586e2a9264addeda|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgupc7586e2a92642filesupdated,0filesmerged,0filesremoved,0filesunresolved$echobar>a$hgamend-m"watbar to a"3neworphanchangesets$echowat>a$hgamend-m"watbar to a"$hgevolve--allmove:[2]addedbatop:[6]watbartoamove:[3]addedcmove:[4]addedd$hgglogo9:15c781f93cacaddedd|()[default]drafto8:9e5fb1d5b955addedc|()[default]drafto7:88516dccf68aaddedb|()[default]draft@6:82b74d5dc678watbartoa|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$cd../stacktest$hgup.^^^0filesupdated,0filesmerged,3filesremoved,0filesunresolved$echowat>a$hgamend-m"watbar to a"3neworphanchangesets$hgevolve--allmove:[2]addedbatop:[5]watbartoamove:[3]addedcmove:[4]addedd$hgglogo8:c72d2885eb51addedd|()[default]drafto7:3ce4be6d8e5eaddedc|()[default]drafto6:d5f148423c16addedb|()[default]draft@5:8e222f257bbfwatbartoa|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgpull../stack2pullingfrom../stack2searchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded4changesetswith0changesto4files(+1heads)5newobsolescencemarkers8newcontent-divergentchangesetsnewchangesets82b74d5dc678:15c781f93cac(4drafts)(run'hg heads'toseeheads,'hg merge'tomerge)$hgglog*12:15c781f93cacaddedd|()[default]draft*11:9e5fb1d5b955addedc|()[default]draft*10:88516dccf68aaddedb|()[default]draft*9:82b74d5dc678watbartoa|()[default]draft|*8:c72d2885eb51addedd||()[default]draft|*7:3ce4be6d8e5eaddedc||()[default]draft|*6:d5f148423c16addedb||()[default]draft|@5:8e222f257bbfwatbartoa|/()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgevolve--all--content-divergentmerge:[5]watbartoawith:[9]watbartoabase:[1]addeda0filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[6]addedbwith:[10]addedbbase:[2]addedbrebasing"divergent"content-divergentchangesetd5f148423c16onf66f262fff6c0filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[7]addedcwith:[11]addedcbase:[3]addedcrebasing"divergent"content-divergentchangeset3ce4be6d8e5eoneadfd9d706800filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[8]addeddwith:[12]addeddbase:[4]addeddrebasing"divergent"content-divergentchangesetc72d2885eb51onb2cac10f38360filesupdated,0filesmerged,0filesremoved,0filesunresolvedworkingdirectoryisnowatf66f262fff6c$hgglogo19:038fe7db3d88addedd|()[default]drafto17:b2cac10f3836addedc|()[default]drafto15:eadfd9d70680addedb|()[default]draft@13:f66f262fff6cwatbartoa|()[default]drafto0:8fa14d15e168addedhgignore()[default]draftResolvingcontent-divergenceofastackwithdifferentparents---------------------------------------------------------$cd..$hginitstackrepo1$cdstackrepo1$echo".*\.orig">.hgignore$hgadd.hgignore$hgci-m"added hgignore"$forchinabcd;>doechofoo>$ch;>hgadd$ch;>hgci-qm"added "$ch;>done;$hgglog@4:c41c793e0ef1addedd|()[default]drafto3:ca1b80f7960aaddedc|()[default]drafto2:b1661037fa25addedb|()[default]drafto1:c7586e2a9264addeda|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$cd..$hginitstackrepo2$cdstackrepo2$hgpull../stackrepo1pullingfrom../stackrepo1requestingallchangesaddingchangesetsaddingmanifestsaddingfilechangesadded5changesetswith5changesto5filesnewchangesets8fa14d15e168:c41c793e0ef1(5drafts)(run'hg update'togetaworkingcopy)$hgglogo4:c41c793e0ef1addedd|()[default]drafto3:ca1b80f7960aaddedc|()[default]drafto2:b1661037fa25addedb|()[default]drafto1:c7586e2a9264addeda|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgup8fa14d15e1681filesupdated,0filesmerged,0filesremoved,0filesunresolved$echonewfile>newfile$hgci-Am"add newfile"addingnewfilecreatednewhead$hgrebase-sc7586e2a9264-d.rebasing1:c7586e2a9264"added a"rebasing2:b1661037fa25"added b"rebasing3:ca1b80f7960a"added c"rebasing4:c41c793e0ef1"added d"$hgglogo9:d45f050514c2addedd|()[default]drafto8:8ed612937375addedc|()[default]drafto7:6eb54b5af3fbaddedb|()[default]drafto6:c04ff147ef79addeda|()[default]draft@5:2228e3b74514addnewfile|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$cd../stackrepo1$hgup.^^^0filesupdated,0filesmerged,3filesremoved,0filesunresolved$echowat>a$hgamend-m"watbar to a"3neworphanchangesets$hgevolve--allmove:[2]addedbatop:[5]watbartoamove:[3]addedcmove:[4]addedd$hgglogo8:c72d2885eb51addedd|()[default]drafto7:3ce4be6d8e5eaddedc|()[default]drafto6:d5f148423c16addedb|()[default]draft@5:8e222f257bbfwatbartoa|()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgpull../stackrepo2pullingfrom../stackrepo2searchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded5changesetswith1changesto5files(+1heads)4newobsolescencemarkers8newcontent-divergentchangesetsnewchangesets2228e3b74514:d45f050514c2(5drafts)(run'hg heads'toseeheads,'hg merge'tomerge)$hgglog*13:d45f050514c2addedd|()[default]draft*12:8ed612937375addedc|()[default]draft*11:6eb54b5af3fbaddedb|()[default]draft*10:c04ff147ef79addeda|()[default]drafto9:2228e3b74514addnewfile|()[default]draft|*8:c72d2885eb51addedd||()[default]draft|*7:3ce4be6d8e5eaddedc||()[default]draft|*6:d5f148423c16addedb||()[default]draft|@5:8e222f257bbfwatbartoa|/()[default]drafto0:8fa14d15e168addedhgignore()[default]draft$hgevolve--all--content-divergentmerge:[10]addedawith:[5]watbartoabase:[1]addedarebasing"other"content-divergentchangeset8e222f257bbfon2228e3b745141filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[11]addedbwith:[6]addedbbase:[2]addedbrebasing"divergent"content-divergentchangeset6eb54b5af3fbon74fbf3e6a0b6rebasing"other"content-divergentchangesetd5f148423c16on74fbf3e6a0b60filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[12]addedcwith:[7]addedcbase:[3]addedcrebasing"divergent"content-divergentchangeset8ed612937375on4e29776e83a5rebasing"other"content-divergentchangeset3ce4be6d8e5eon4e29776e83a50filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[13]addeddwith:[8]addeddbase:[4]addeddrebasing"divergent"content-divergentchangesetd45f050514c2on77126af93a25rebasing"other"content-divergentchangesetc72d2885eb51on77126af93a250filesupdated,0filesmerged,0filesremoved,0filesunresolvedworkingdirectoryisnowat74fbf3e6a0b6$hgglogo24:c8f73c376a6eaddedd|()[default]drafto21:77126af93a25addedc|()[default]drafto18:4e29776e83a5addedb|()[default]draft@15:74fbf3e6a0b6watbartoa|()[default]drafto9:2228e3b74514addnewfile|()[default]drafto0:8fa14d15e168addedhgignore()[default]draftwhen"divergent"and"other"bothhitmergeconflictinrelocating------------------------------------------------------------------$hgstrip14:--hidden0filesupdated,0filesmerged,1filesremoved,0filesunresolvedsavedbackupbundleto$TESTTMP/stackrepo1/.hg/strip-backup/74fbf3e6a0b6-f3612603-backup.hg8newcontent-divergentchangesetsPreparerepotohavemergeconflicts$hgup-r"max(desc('added a'))"1filesupdated,0filesmerged,0filesremoved,0filesunresolved$hgevolve-r.--content-divergentmerge:[10]addedawith:[5]watbartoabase:[1]addedarebasing"other"content-divergentchangeset8e222f257bbfon2228e3b745141filesupdated,0filesmerged,0filesremoved,0filesunresolved6neworphanchangesetsworkingdirectoryisnowat74fbf3e6a0b6$echob_conflict>b$hgamend-AaddingbLet's try to evolve stack $ hg evolve --content-divergent merge:[11] added b with: [6] added b base: [2] added b rebasing "divergent" content-divergent changeset 6eb54b5af3fb on 119989a4317e merging b warning: conflicts while merging b! (edit, then use 'hgresolve--mark') unresolved merge conflicts (see 'hghelpevolve.interrupted') [1] $ echo b > b $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue evolving 11:6eb54b5af3fb "added b" rebasing "other" content-divergent changeset d5f148423c16 on 119989a4317e merging b warning: conflicts while merging b! (edit, then use 'hgresolve--mark') unresolved merge conflicts (see 'hghelpevolve.interrupted') [1] $ echo b > b $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue evolving 6:d5f148423c16 "added b" 0 files updated, 0 files merged, 0 files removed, 0 files unresolved merge:[12] added c with: [7] added c base: [3] added c rebasing "divergent" content-divergent changeset 8ed612937375 on 646bd3372ee7 rebasing "other" content-divergent changeset 3ce4be6d8e5e on 646bd3372ee7 0 files updated, 0 files merged, 0 files removed, 0 files unresolved merge:[13] added d with: [8] added d base: [4] added d rebasing "divergent" content-divergent changeset d45f050514c2 on 67abc597e636 rebasing "other" content-divergent changeset c72d2885eb51 on 67abc597e636 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory is now at 119989a4317e $ hg glog o 25:5e2572194f59 added d | () [default] draft o 22:67abc597e636 added c | () [default] draft o 19:646bd3372ee7 added b | () [default] draft @ 16:119989a4317e watbar to a | () [default] draft o 9:2228e3b74514 add newfile | () [default] draft o 0:8fa14d15e168 added hgignore () [default] draftwhen relocating "other" hit merge conflict but not "divergent"-------------------------------------------------------------- $ hg strip 14: --hidden 0 files updated, 0 files merged, 2 files removed, 0 files unresolved saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/74fbf3e6a0b6-15474722-backup.hg 8 new content-divergent changesetsInsert conflicting changes in between the stack of content-div csets $ hg up -r "max(desc('addedb'))" 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo b_diverging_local > b $ hg amend 2 new orphan changesets $ hg evolve move:[12] added c atop:[14] added b move:[13] added d $ hg up -r d5f148423c16 2 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo b_diverging_other > b $ hg amend 2 new orphan changesets $ hg evolve move:[7] added c atop:[17] added b move:[8] added d $ hg log -r tip changeset: 19:c351be27f199 tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 instability: content-divergent summary: added dNow let'strytoevolvestack$hgevolve--content-divergentmerge:[10]addedawith:[5]watbartoabase:[1]addedarebasing"other"content-divergentchangeset8e222f257bbfon2228e3b745141filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[14]addedbwith:[17]addedbbase:[2]addedbrebasing"divergent"content-divergentchangeset2a955e808c53on74fbf3e6a0b6rebasing"other"content-divergentchangeset509103439e5eon74fbf3e6a0b6mergingbwarning:conflictswhilemergingb!(edit,thenuse'hg resolve --mark')0filesupdated,0filesmerged,0filesremoved,1filesunresolved4neworphanchangesetsunresolvedmergeconflicts(see'hg help evolve.interrupted')[1]Asnowwehaveinterruptedevolutionofstackofcontent-divergentcset(whenrelocationof"divergent"alsoincluded)let's test --abort and --stop test --abort: $ hg evolve --abort 2 new content-divergent changesets evolve aborted working directory is now at 509103439e5econfirm that tip is same as it was before we started --content-div resolution $ hg log -r tip changeset: 19:c351be27f199 tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 instability: content-divergent summary: added dtest --stop: $ hg log -G * changeset: 19:c351be27f199 | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | summary: added d | * changeset: 18:eaf34afe4df3 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | summary: added c | @ changeset: 17:509103439e5e | parent: 5:8e222f257bbf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | summary: added b | | * changeset: 16:91c8ccb9c241 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: content-divergent | | summary: added d | | | * changeset: 15:48b0f803817a | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: content-divergent | | summary: added c | | | * changeset: 14:2a955e808c53 | | parent: 10:c04ff147ef79 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: content-divergent | | summary: added b | | | * changeset: 10:c04ff147ef79 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: content-divergent | | summary: added a | | | o changeset: 9:2228e3b74514 | | parent: 0:8fa14d15e168 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: add newfile | | * | changeset: 5:8e222f257bbf |/ parent: 0:8fa14d15e168 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | summary: watbar to a | o changeset: 0:8fa14d15e168 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: added hgignore $ hg evolve --content-divergent merge:[10] added a with: [5] watbar to a base: [1] added a rebasing "other" content-divergent changeset 8e222f257bbf on 2228e3b74514 1 files updated, 0 files merged, 0 files removed, 0 files unresolved merge:[14] added b with: [17] added b base: [2] added b rebasing "divergent" content-divergent changeset 2a955e808c53 on 74fbf3e6a0b6 rebasing "other" content-divergent changeset 509103439e5e on 74fbf3e6a0b6 merging b warning: conflicts while merging b! (edit, then use 'hgresolve--mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 4 new orphan changesets unresolved merge conflicts (see 'hghelpevolve.interrupted') [1] $ hg evolve --stop 2 new orphan changesets stopped the interrupted evolve working directory is now at 2a955e808c53 $ hg log -G o changeset: 21:74fbf3e6a0b6 | tag: tip | parent: 9:2228e3b74514 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: watbar to a | | * changeset: 19:c351be27f199 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: orphan, content-divergent | | summary: added d | | | * changeset: 18:eaf34afe4df3 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: orphan, content-divergent | | summary: added c | | | * changeset: 17:509103439e5e | | parent: 5:8e222f257bbf | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: orphan, content-divergent | | summary: added b | | | | * changeset: 16:91c8ccb9c241 | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 | | | instability: orphan, content-divergent | | | summary: added d | | | | | * changeset: 15:48b0f803817a | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 | | | instability: orphan, content-divergent | | | summary: added c | | | | | @ changeset: 14:2a955e808c53 | | | parent: 10:c04ff147ef79 | | | user: test | | | date: Thu Jan 01 00:00:00 1970 +0000 | | | instability: orphan, content-divergent | | | summary: added b | | | +---x changeset: 10:c04ff147ef79 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | obsolete: rewritten using evolve as 21:74fbf3e6a0b6 | | summary: added a | | o | changeset: 9:2228e3b74514 | | parent: 0:8fa14d15e168 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: add newfile | | | x changeset: 5:8e222f257bbf |/ parent: 0:8fa14d15e168 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | obsolete: rebased using evolve as 21:74fbf3e6a0b6 | summary: watbar to a | o changeset: 0:8fa14d15e168 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: added hgignore $ hg obslog -r 'desc("watbar to a")' --all o 74fbf3e6a0b6 (21) watbar to a |\ x | 186bdc2cdfa2 (20) watbar to a | | rewritten as 74fbf3e6a0b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000) | | | x c04ff147ef79 (10) added a | | rewritten(description, content) as 74fbf3e6a0b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000) | | x | 8e222f257bbf (5) watbar to a |/ rewritten(parent) as 186bdc2cdfa2 using evolve by test (Thu Jan 01 00:00:00 1970 +0000) | x c7586e2a9264 (1) added a rewritten(description, content) as 8e222f257bbf using amend by test (Thu Jan 01 00:00:00 1970 +0000) rewritten(parent) as c04ff147ef79 using rebase by test (Thu Jan 01 00:00:00 1970 +0000) $ hg obslog -r 'desc("added b")' --all @ 2a955e808c53 (14) added b | | * 509103439e5e (17) added b | | x | 6eb54b5af3fb (11) added b | | rewritten(content) as 2a955e808c53 using amend by test (Thu Jan 01 00:00:00 1970 +0000) | | | x d5f148423c16 (6) added b |/ rewritten(content) as 509103439e5e using amend by test (Thu Jan 01 00:00:00 1970 +0000) | x b1661037fa25 (2) added b rewritten(parent) as 6eb54b5af3fb using rebase by test (Thu Jan 01 00:00:00 1970 +0000) rewritten(parent) as d5f148423c16 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)Again, let'sevolvethestack$hgevolve--content-divergentmerge:[14]addedbwith:[17]addedbbase:[2]addedbrebasing"divergent"content-divergentchangeset2a955e808c53on74fbf3e6a0b6rebasing"other"content-divergentchangeset509103439e5eon74fbf3e6a0b6mergingbwarning:conflictswhilemergingb!(edit,thenuse'hg resolve --mark')0filesupdated,0filesmerged,0filesremoved,1filesunresolvedunresolvedmergeconflicts(see'hg help evolve.interrupted')[1]$echofoo>b$hgres-m(nomoreunresolvedfiles)continue:hgevolve--continue$hgevolve--continuemerge:[15]addedcwith:[18]addedcbase:[3]addedcrebasing"divergent"content-divergentchangeset48b0f803817aon4e29776e83a5rebasing"other"content-divergentchangeseteaf34afe4df3on4e29776e83a50filesupdated,0filesmerged,0filesremoved,0filesunresolvedmerge:[16]addeddwith:[19]addeddbase:[4]addeddrebasing"divergent"content-divergentchangeset91c8ccb9c241on77126af93a25rebasing"other"content-divergentchangesetc351be27f199on77126af93a250filesupdated,0filesmerged,0filesremoved,0filesunresolvedworkingdirectoryisnowat4e29776e83a5$hgevolve-l$cd..Makesurethatcontent-divergentresolutiondoesn't undo a change (issue6203)----------------------------------------------------------------------------- $ hg init issue6203 $ cd issue6203 $ echo a > a; hg add a; hg ci -m a $ echo 'bwithtypo' > b; hg add b; hg ci -m b $ echo c > c; hg add c; hg ci -m c $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved [1] b $ echo 'bwithouttypo' > b $ hg amend 1 new orphan changesets $ hg evolve move:[2] c atop:[3] b $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo d > d; hg add d; hg ci -m d created new head $ hg rebase --hidden --config experimental.evolution.allowdivergence=True -s 1 -d 5 rebasing 1:d420a663b65e "b" rebasing 2:49f182e7a6cc "c" 4 new content-divergent changesets $ hg log -G -v --patch * changeset: 7:ef4885dea3da | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | files: c | description: | c | | | diff -r fe788ccf5416 -r ef4885dea3da c | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | +++ b/c Thu Jan 01 00:00:00 1970 +0000 | @@ -0,0 +1,1 @@ | +c | * changeset: 6:fe788ccf5416 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | files: b | description: | b | | | diff -r 980f7dc84c29 -r fe788ccf5416 b | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | +++ b/b Thu Jan 01 00:00:00 1970 +0000 | @@ -0,0 +1,1 @@ | +b with typo | @ changeset: 5:980f7dc84c29 | parent: 0:cb9a9f314b8b | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | files: d | description: | d | | | diff -r cb9a9f314b8b -r 980f7dc84c29 d | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | +++ b/d Thu Jan 01 00:00:00 1970 +0000 | @@ -0,0 +1,1 @@ | +d | | * changeset: 4:fef59171875e | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | instability: content-divergent | | files: c | | description: | | c | | | | | | diff -r 5b2d00df9c4e -r fef59171875e c | | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | | +++ b/c Thu Jan 01 00:00:00 1970 +0000 | | @@ -0,0 +1,1 @@ | | +c | | | * changeset: 3:5b2d00df9c4e |/ parent: 0:cb9a9f314b8b | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | instability: content-divergent | files: b | description: | b | | | diff -r cb9a9f314b8b -r 5b2d00df9c4e b | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | +++ b/b Thu Jan 01 00:00:00 1970 +0000 | @@ -0,0 +1,1 @@ | +b without typo | o changeset: 0:cb9a9f314b8b user: test date: Thu Jan 01 00:00:00 1970 +0000 files: a description: a diff -r 000000000000 -r cb9a9f314b8b a --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ +a $ hg evolve --content-divergent merge:[6] b with: [3] b base: [1] b rebasing "other" content-divergent changeset 5b2d00df9c4e on 980f7dc84c29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved merge:[7] c with: [4] c base: [2] c rebasing "divergent" content-divergent changeset ef4885dea3da on 0999c349998d rebasing "other" content-divergent changeset fef59171875e on 0999c349998d 0 files updated, 0 files merged, 0 files removed, 0 files unresolvedExpected result:Changeset with description "b" only adds file "b" with content "b without typo".Changeset with description "c" only adds file "c" with content "c". $ hg glog -l2 -p o 12:4ca627f76da9 c | () [default] draftdiff -r 0999c349998d -r 4ca627f76da9 c | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | +++ b/c Thu Jan 01 00:00:00 1970 +0000 | @@ -0,0 +1,1 @@ | +c | o 9:0999c349998d b | () [default] draftdiff -r 980f7dc84c29 -r 0999c349998d b ~ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/b Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ +b without typo $ cd ..Testing case when resolution parent is ambiguous (MultipleSuccessorsError)-------------------------------------------------------------------------- $ hg init multiplesuccs1 $ cd multiplesuccs1 $ echo base > base $ hg ci -Aqm "added base" $ echo foo > foo $ hg ci -Aqm "added foo" $ echo bar > bar; echo car > car $ hg ci -Aqm "added bar and car" $ echo dar > dar $ hg ci -Aqm "added dar" $ cd .. $ hg clone multiplesuccs1 multiplesuccs2 updating to branch default 5 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd multiplesuccs2 $ hg up -r "desc('addedfoo')" 0 files updated, 0 files merged, 3 files removed, 0 files unresolved $ echo newfoo > foo $ hg amend 2 new orphan changesets $ hg evolve move:[2] added bar and car atop:[4] added foo move:[3] added dar $ cd ../multiplesuccs1 $ hg up -r "desc('addedbase')" 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ echo tuna > tuna $ hg ci -Aqm "added tuna" $ hg rebase -s "desc('addedfoo')" -d . rebasing 1:8da7bbaea4f7 "added foo" rebasing 2:7f4b97b13607 "added bar and car" rebasing 3:9f12b2fcb3de "added dar" $ cd ../multiplesuccs2 $ hg pull pulling from $TESTTMP/multiplesuccs1 searching for changes adding changesets adding manifests adding file changes added 4 changesets with 1 changes to 5 files (+1 heads) 3 new obsolescence markers 6 new content-divergent changesets new changesets 9703820a7d5b:9a1f460df8b5 (4 drafts) (run 'hgheads' to see heads, 'hgmerge' to merge) $ hg glog * 10:9a1f460df8b5 added dar | () [default] draft * 9:7dd5b9d42ef3 added bar and car | () [default] draft * 8:afd8b2ea1b77 added foo | () [default] draft o 7:9703820a7d5b added tuna | () [default] draft | * 6:57a3f8edf065 added dar | | () [default] draft | * 5:f4ed107810a7 added bar and car | | () [default] draft | @ 4:8a2d93492f59 added foo |/ () [default] draft o 0:bde1d2b6b5e5 added base () [default] draft $ hg evolve -r 4+5 --content-divergent merge:[8] added foo with: [4] added foo base: [1] added foo rebasing "other" content-divergent changeset 8a2d93492f59 on 9703820a7d5b 1 files updated, 0 files merged, 0 files removed, 0 files unresolved merge:[9] added bar and car with: [5] added bar and car base: [2] added bar and car rebasing "divergent" content-divergent changeset 7dd5b9d42ef3 on 8ef6ad88580d rebasing "other" content-divergent changeset f4ed107810a7 on 8ef6ad88580d 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 2 new orphan changesets working directory is now at 8ef6ad88580d $ hg glog o 15:09ba686a465e added bar and car | () [default] draft @ 12:8ef6ad88580d added foo | () [default] draft | * 10:9a1f460df8b5 added dar | | () [default] draft | x 9:7dd5b9d42ef3 added bar and car | | () [default] draft | x 8:afd8b2ea1b77 added foo |/ () [default] draft o 7:9703820a7d5b added tuna | () [default] draft | * 6:57a3f8edf065 added dar | | () [default] draft | x 5:f4ed107810a7 added bar and car | | () [default] draft | x 4:8a2d93492f59 added foo |/ () [default] draft o 0:bde1d2b6b5e5 added base () [default] draft $ echo bar > bar; hg ci -Aqm "added bar" $ echo car > car; hg ci -Aqm "added car" $ hg prune --split -s 16+17 -r 15 1 changesets pruned $ hg evolve --content-divergent skipping 57a3f8edf065: have a different parent than 9a1f460df8b5 (not handled yet) | 57a3f8edf065, 9a1f460df8b5 are not based on the same changeset. | With the current state of its implementation, | evolve does not work in that case. | rebase one of them next to the other and run | this command again. | - either: hg rebase --dest 'p1(57a3f8edf065)' -r 9a1f460df8b5 | - or: hg rebase --dest 'p1(9a1f460df8b5)' -r 57a3f8edf065