diff --git a/mercurial/exchange.py b/mercurial/exchange.py
index 233623d58c9acf74132b04fedf881152b4e07343_bWVyY3VyaWFsL2V4Y2hhbmdlLnB5..ef880ced6d07f0ec9009efef7fb403ed1263de8d_bWVyY3VyaWFsL2V4Y2hhbmdlLnB5 100644
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -48,6 +48,8 @@
         self.remoteheads = None
         # testable as a boolean indicating if any nodes are missing locally.
         self.incoming = None
+        # set of all heads common after changeset bundle push
+        self.commonheads = None
 
 def push(repo, remote, force=False, revs=None, newbranch=False):
     '''Push outgoing changesets (limited by revs) from a local
@@ -238,6 +240,7 @@
                          pushop.outgoing.commonheads,
                          pushop.outgoing.missing)
         cheads.extend(c.node() for c in revset)
+    pushop.commonheads = cheads
     # even when we don't push, exchanging phase data is useful
     remotephases = pushop.remote.listkeys('phases')
     if (pushop.ui.configbool('ui', '_usedassubrepo', False)