diff -r 2e4d79dcc0a0 -r 72c84f24b420 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Apr 30 18:25:45 2011 +0200 +++ b/mercurial/localrepo.py Sat Apr 30 17:21:37 2011 +0200 @@ -1327,9 +1327,8 @@ def pull(self, remote, heads=None, force=False): lock = self.lock() try: - usecommon = remote.capable('getbundle') tmp = discovery.findcommonincoming(self, remote, heads=heads, - force=force, commononly=usecommon) + force=force) common, fetch, rheads = tmp if not fetch: self.ui.status(_("no changes found\n")) @@ -1341,7 +1340,7 @@ # issue1320, avoid a race if remote changed after discovery heads = rheads - if usecommon: + if remote.capable('getbundle'): cg = remote.getbundle('pull', common=common, heads=heads or rheads) elif heads is None: @@ -1475,6 +1474,8 @@ if not heads: heads = cl.heads() common, missing = cl.findcommonmissing(common, heads) + if not missing: + return None return self._changegroupsubset(common, missing, heads, source) def _changegroupsubset(self, commonrevs, csets, heads, source):