diff tests/test-evolve-bumped.t @ 1150:2c99d92faa62 stable

evolve: fix error during iteration over bumped changesets (bug38) We are iterating over a manifest while altering it. We cannot use iteritems() in this context. we move to items, that will be an issue for very large changesets.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Mon, 03 Nov 2014 11:11:14 +0000
parents
children cc3e68120185
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-evolve-bumped.t	Mon Nov 03 11:11:14 2014 +0000
@@ -0,0 +1,83 @@
+  $ hg init public
+  $ cd public
+  $ echo a > a
+  $ hg commit -A -m init
+  adding a
+  $ cd ..
+
+  $ evolvepath=$(echo $(dirname $TESTDIR))/hgext/evolve.py
+  $ hg clone -U public private
+  $ cd private
+  $ cat >> .hg/hgrc <<EOF
+  > [extensions]
+  > rebase =
+  > evolve = $evolvepath
+  > [phases]
+  > publish = false
+  > EOF
+  $ cd ..
+
+  $ cp -a private alice
+  $ cp -a private bob
+
+  $ cd alice
+  $ hg update
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo a >> a
+  $ hg commit -u alice -m 'modify a'
+  $ hg push ../private
+  pushing to ../private
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  $ hg log -r 'draft()'
+  changeset:   1:4d1169d82e47
+  tag:         tip
+  user:        alice
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     modify a
+  
+
+  $ cd ../bob
+  $ hg pull ../private
+  pulling from ../private
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  pull obsolescence markers
+  (run 'hg update' to get a working copy)
+  $ hg log -r 'draft()'
+  changeset:   1:4d1169d82e47
+  tag:         tip
+  user:        alice
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     modify a
+  
+  $ hg push ../public
+  pushing to ../public
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  $ hg log -r 'draft()'
+
+  $ cd ../alice
+  $ hg amend -m 'tweak a'
+  $ hg pull ../public
+  pulling from ../public
+  searching for changes
+  no changes found
+  pull obsolescence markers
+  1 new bumped changesets
+
+  $ hg evolve -a
+  recreate:[2] tweak a
+  atop:[1] modify a
+  computing new diff
+  committed as 4d1169d82e47
+  working directory is now at 4d1169d82e47