Mercurial > hg > evolve
changeset 1831:8f902ec9ed9a stable
bump: copy parent manifest before editting it
Previously, the bump code would access the previous manifest, then edit that
dictionary data structure. Because the manifest was in the mancache at that
time, those edits were persisted to other readers who asked for that manifest.
This caused commits being made during bump to have the wrong file parents in
many situations (hence why the tests need updating).
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 12 Sep 2016 10:41:00 -0700 |
parents | 54f40b722cf9 |
children | c9a79b432907 904ae1b2087b |
files | README hgext/evolve.py tests/test-evolve.t tests/test-stabilize-result.t |
diffstat | 4 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/README +++ b/README @@ -56,6 +56,10 @@ Changelog ========= +5.4.2 -- + + - Fix erroneous manifest computation when solving 'bumped' changeset. + 5.4.1 -- 2016-08-01 - compat with Mercurial 3.9
--- a/hgext/evolve.py +++ b/hgext/evolve.py @@ -2014,7 +2014,7 @@ repo.ui.status(_('computing new diff\n')) files = set() copied = copies.pathcopies(prec, bumped) - precmanifest = prec.manifest() + precmanifest = prec.manifest().copy() # 3.3.2 needs a list. # future 3.4 don't detect the size change during iteration # this is fishy
--- a/tests/test-evolve.t +++ b/tests/test-evolve.t @@ -377,8 +377,8 @@ recreate:[8] another feature that rox atop:[7] another feature (child of ba0ec09b1bab) computing new diff - committed as 2d8c5414e9f0 - working directory is now at 2d8c5414e9f0 + committed as 6707c5e1c49d + working directory is now at 6707c5e1c49d $ hg glog @ 9 feature-B: bumped update to 99833d22b0c6: - test | @@ -437,7 +437,7 @@ move:[11] dansk 3! atop:[14] dansk 2! merging main-file-1 - working directory is now at 536984593824 + working directory is now at 68557e4f0048 $ hg glog @ 15 : dansk 3! - test | @@ -810,9 +810,9 @@ 2 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ glog - @ 16:d1297ecc971f@default(draft) Folding with custom commit message + @ 16:98cb758db56d@default(draft) Folding with custom commit message | - o 13:27b934eaf1f9@default(draft) dansk! + o 13:0a2f9b959bb4@default(draft) dansk! | o 7:99833d22b0c6@default(public) another feature (child of ba0ec09b1bab) | @@ -829,7 +829,7 @@ 2 changesets folded 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg qlog - 17 - 0b1eca0e871b A longer + 17 - a00182c58888 A longer commit message (draft) 7 - 99833d22b0c6 another feature (child of ba0ec09b1bab) (public) 6 - ba0ec09b1bab a nifty feature (public)
--- a/tests/test-stabilize-result.t +++ b/tests/test-stabilize-result.t @@ -176,10 +176,10 @@ perform evolve? [Ny] y rebasing to destination parent: 66719795a494 computing new diff - committed as (a7cabd7bd9c2|671b9d7eeaec) (re) - working directory is now at (a7cabd7bd9c2|671b9d7eeaec) (re) + committed as c2c1151aa854 + working directory is now at c2c1151aa854 $ glog - @ 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re) + @ 14:c2c1151aa854@default(draft) bk:[] bumped update to 1cf0aacfd363: | | o 9:7bc2f5967f5e@default(draft) bk:[] add c | |