Mercurial > hg
changeset 28669:c4b727795d6a
bundle: avoid crash when no good changegroup version found
When using treemanifests, only changegroup3 bundles can be
created. However, there is currently no way of requesting a
changegroup3 bundle, so we run into an assertion in
changegroup.getbundler() when trying to get a changroup2
bundler. Let's avoid the traceback and print a short error message
instead.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 25 Mar 2016 23:05:32 -0700 |
parents | 07f1fbf1f758 |
children | ff0d3b6b287f |
files | mercurial/commands.py tests/test-treemanifest.t |
diffstat | 2 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Mar 25 16:13:28 2016 -0700 +++ b/mercurial/commands.py Fri Mar 25 23:05:32 2016 -0700 @@ -1399,6 +1399,10 @@ base = scmutil.revrange(repo, opts.get('base')) # TODO: get desired bundlecaps from command line. bundlecaps = None + if cgversion not in changegroup.supportedoutgoingversions(repo): + raise error.Abort(_("repository does not support bundle version %s") % + cgversion) + if base: if dest: raise error.Abort(_("--base is incompatible with specifying "
--- a/tests/test-treemanifest.t Fri Mar 25 16:13:28 2016 -0700 +++ b/tests/test-treemanifest.t Fri Mar 25 23:05:32 2016 -0700 @@ -736,3 +736,9 @@ bundle requirements: generaldelta, revlogv1, treemanifest $ hg debugbundle --spec repo-packed.hg none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Ctreemanifest + +Bundle with changegroup2 is not supported + + $ hg -R deeprepo bundle --all -t v2 deeprepo.bundle + abort: repository does not support bundle version 02 + [255]