--- a/mercurial/discovery.py Wed Mar 23 16:02:11 2011 +0100
+++ b/mercurial/discovery.py Wed Mar 23 16:06:55 2011 +0100
@@ -9,9 +9,10 @@
from i18n import _
import util, error
-def findcommonincoming(repo, remote, heads=None, force=False):
- """Return a tuple (common, missing roots, heads) used to identify
- missing nodes from remote.
+def findcommonincoming(repo, remote, heads=None, force=False, commononly=False):
+ """Return a tuple (common, missing, heads) used to identify missing nodes
+ from remote. "missing" is either a boolean indicating if any nodes are missing
+ (when commononly=True), or else a list of the root nodes of the missing set.
If a list of heads is specified, return only nodes which are heads
or ancestors of these heads.
@@ -36,6 +37,13 @@
# and start by examining the heads
repo.ui.status(_("searching for changes\n"))
+ if commononly:
+ myheads = repo.heads()
+ known = remote.known(myheads)
+ if util.all(known):
+ hasincoming = set(heads).difference(set(myheads)) and True
+ return myheads, hasincoming, heads
+
unknown = []
for h in heads:
if h not in m: