diff --git a/tests/test-treemanifest-infinitepush.t b/tests/test-treemanifest-infinitepush.t --- a/tests/test-treemanifest-infinitepush.t +++ b/tests/test-treemanifest-infinitepush.t @@ -193,6 +193,19 @@ -rw-r--r-- 0 undo.phaseroots Pull a normal scratch branch into a treeonly client + $ hg pull -r scratch/nontree + pulling from ssh://user@dummy/master + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files (+1 heads) + new changesets 42ec76eb772a + (run 'hg heads' to see heads, 'hg merge' to merge) + $ hg log -r 42ec76eb772a -T ' ' --stat + abort: unable to download the following trees from the server: + bf0601d5cb94247e00d0bdd1d8327f0dd36f54e9 + [255] $ cd .. Verify its not on the server diff --git a/treemanifest/__init__.py b/treemanifest/__init__.py --- a/treemanifest/__init__.py +++ b/treemanifest/__init__.py @@ -679,9 +679,8 @@ if repo.ui.configbool('treemanifest', 'treeonly'): self.manifestheader() - chain = None - for chunkdata in iter(lambda: self.deltachunk(chain), {}): - chain = chunkdata['node'] + for chunkdata in self.deltaiter(): + pass return mfrevlog = repo.manifestlog._revlog @@ -1008,8 +1007,13 @@ raise error.Abort(_("unable to download %d trees (%s,...)") % (len(missingnodes), list(missingnodes)[0])) except bundle2.AbortFromPart as exc: - repo.ui.status(_('remote: abort: %s\n') % exc) - raise error.Abort(_('pull failed on remote'), hint=exc.hint) + repo.ui.debug('remote: abort: %s\n' % exc) + hexnodes = list(hex(mfnode) for mfnode in mfnodes) + nodestr = '\n'.join(hexnodes[:10]) + if len(hexnodes) > 10: + nodestr += '\n...' + raise error.Abort(_('unable to download the following trees from the ' + 'server:\n%s') % nodestr, hint=exc.hint) except error.BundleValueError as exc: raise error.Abort(_('missing support for %s') % exc) finally: