unbundle: move BundleUnknownFeatureError exception handling out
This just moves the BundleUnknownFeatureError exception handling one
level up so we collect the bundle2.applybundle{,1}() calls
together. applybundle1() will never throw the exception, so it should
have no functional consequence.
--- a/mercurial/commands.py Wed Jun 21 21:08:48 2017 -0700
+++ b/mercurial/commands.py Thu Jun 22 15:03:13 2017 -0700
@@ -5202,23 +5202,23 @@
'"hg unbundle"'),
hint=_('use "hg debugapplystreamclonebundle"'))
url = 'bundle:' + fname
- if isinstance(gen, bundle2.unbundle20):
- with repo.transaction('unbundle') as tr:
- try:
+ try:
+ if isinstance(gen, bundle2.unbundle20):
+ with repo.transaction('unbundle') as tr:
op = bundle2.applybundle(repo, gen, tr,
source='unbundle',
url=url)
- except error.BundleUnknownFeatureError as exc:
- raise error.Abort(
- _('%s: unknown bundle feature, %s') % (fname, exc),
- hint=_("see https://mercurial-scm.org/"
- "wiki/BundleFeature for more "
- "information"))
- else:
- txnname = 'unbundle\n%s' % util.hidepassword(url)
- with repo.transaction(txnname) as tr:
- op = bundle2.applybundle1(repo, gen, tr, source='unbundle',
- url=url)
+ else:
+ txnname = 'unbundle\n%s' % util.hidepassword(url)
+ with repo.transaction(txnname) as tr:
+ op = bundle2.applybundle1(repo, gen, tr,
+ source='unbundle', url=url)
+ except error.BundleUnknownFeatureError as exc:
+ raise error.Abort(
+ _('%s: unknown bundle feature, %s') % (fname, exc),
+ hint=_("see https://mercurial-scm.org/"
+ "wiki/BundleFeature for more "
+ "information"))
modheads = bundle2.combinechangegroupresults(op)
return postincoming(ui, repo, modheads, opts.get(r'update'), None, None)