push: use the fast changegroup() path on push
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Tue, 02 Dec 2008 19:36:43 +0100
changeset 7460 3342e6ada4b9
parent 7459 3fb5c142a9f0
child 7461 2a67430f92f1
push: use the fast changegroup() path on push The race doesn't happen on push (because the discovery is done in the same hg process), so use the fast path instead.
mercurial/localrepo.py
tests/test-push-warn.out
--- a/mercurial/localrepo.py	Mon Dec 01 10:45:22 2008 -0500
+++ b/mercurial/localrepo.py	Tue Dec 02 19:36:43 2008 +0100
@@ -1496,11 +1496,11 @@
         return self.push_addchangegroup(remote, force, revs)
 
     def prepush(self, remote, force, revs):
-        base = {}
+        common = {}
         remote_heads = remote.heads()
-        inc = self.findincoming(remote, base, remote_heads, force=force)
+        inc = self.findincoming(remote, common, remote_heads, force=force)
 
-        update, updated_heads = self.findoutgoing(remote, base, remote_heads)
+        update, updated_heads = self.findoutgoing(remote, common, remote_heads)
         if revs is not None:
             msng_cl, bases, heads = self.changelog.nodesbetween(update, revs)
         else:
@@ -1546,7 +1546,8 @@
 
 
         if revs is None:
-            cg = self.changegroup(update, 'push')
+            # use the fast path, no race possible on push
+            cg = self._changegroup(common.keys(), 'push')
         else:
             cg = self.changegroupsubset(update, revs, 'push')
         return cg, remote_heads
--- a/tests/test-push-warn.out	Mon Dec 01 10:45:22 2008 -0500
+++ b/tests/test-push-warn.out	Tue Dec 02 19:36:43 2008 +0100
@@ -22,7 +22,7 @@
 adding changesets
 adding manifests
 adding file changes
-added 2 changesets with 1 changes to 2 files
+added 2 changesets with 1 changes to 1 files
 adding foo
 updating working directory
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved