--- a/mercurial/localrepo.py Fri Nov 11 00:15:22 2011 +0100
+++ b/mercurial/localrepo.py Fri Nov 11 00:19:00 2011 +0100
@@ -1978,6 +1978,9 @@
node=hex(cl.node(clstart)), source=srctype,
url=url, pending=p)
+ added = [cl.node(r) for r in xrange(clstart, clend)]
+ if srctype != 'strip':
+ phases.advanceboundary(self, 0, added)
# make changelog see real files again
cl.finalize(trp)
@@ -1994,9 +1997,8 @@
self.hook("changegroup", node=hex(cl.node(clstart)),
source=srctype, url=url)
- for i in xrange(clstart, clend):
- self.hook("incoming", node=hex(cl.node(i)),
- source=srctype, url=url)
+ for n in added:
+ self.hook("incoming", node=hex(n), source=srctype, url=url)
# never return 0 here:
if dh < 0:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-phases-exchange.t Fri Nov 11 00:19:00 2011 +0100
@@ -0,0 +1,58 @@
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > graphlog=
+ > EOF
+ $ alias hgph='hg log --template "{rev} {phase} {desc}\n"'
+
+ $ mkcommit() {
+ > echo "$1" > "$1"
+ > hg add "$1"
+ > hg ci -m "$1"
+ > }
+
+ $ hg init alpha
+ $ cd alpha
+ $ mkcommit a-A
+ $ mkcommit a-B
+ $ mkcommit a-C
+ $ mkcommit a-D
+ $ hgph
+ 3 1 a-D
+ 2 1 a-C
+ 1 1 a-B
+ 0 1 a-A
+
+ $ hg init ../beta
+ $ hg push -r 1 ../beta
+ pushing to ../beta
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 2 files
+ $ cd ../beta
+ $ hgph
+ 1 0 a-B
+ 0 0 a-A
+ $ hg up -q
+ $ mkcommit b-A
+ $ hgph
+ 2 1 b-A
+ 1 0 a-B
+ 0 0 a-A
+ $ hg pull ../alpha
+ pulling from ../alpha
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 2 files (+1 heads)
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+ $ hgph
+ 4 0 a-D
+ 3 0 a-C
+ 2 1 b-A
+ 1 0 a-B
+ 0 0 a-A
+
+