[PATCH 5 of 7 phases V2] phases: marked content of a changegroup as published
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Thu Nov 10 23:26:08 UTC 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1320967140 -3600
# Node ID 3821929726f368b8c8733252d23bb40c7936ddcf
# Parent 5d3489f3e4eae03f532a25ddf358c703ace59fa7
phases: marked content of a changegroup as published
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -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:
diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t
new file mode 100644
--- /dev/null
+++ b/tests/test-phases-exchange.t
@@ -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
+
+
More information about the Mercurial-devel
mailing list