--- a/hgext/histedit.py Thu Jun 22 21:27:57 2017 -0700
+++ b/hgext/histedit.py Thu Jun 22 15:00:19 2017 -0700
@@ -1198,14 +1198,8 @@
f = hg.openpath(ui, backupfile)
gen = exchange.readbundle(ui, f, backupfile)
with repo.transaction('histedit.abort') as tr:
- if not isinstance(gen, bundle2.unbundle20):
- bundle2.applybundle1(repo, gen, tr,
- source='histedit',
- url='bundle:' + backupfile)
- else:
- bundle2.applybundle(repo, gen, tr,
- source='histedit',
- url='bundle:' + backupfile)
+ bundle2.applybundle(repo, gen, tr, source='histedit',
+ url='bundle:' + backupfile)
os.remove(backupfile)
--- a/hgext/shelve.py Thu Jun 22 21:27:57 2017 -0700
+++ b/hgext/shelve.py Thu Jun 22 15:00:19 2017 -0700
@@ -126,17 +126,10 @@
fp = self.opener()
try:
gen = exchange.readbundle(self.repo.ui, fp, self.fname, self.vfs)
- if not isinstance(gen, bundle2.unbundle20):
- bundle2.applybundle1(self.repo, gen,
- self.repo.currenttransaction(),
- source='unshelve',
- url='bundle:' + self.vfs.join(self.fname),
- targetphase=phases.secret)
- else:
- bundle2.applybundle(self.repo, gen,
- self.repo.currenttransaction(),
- source='unshelve',
- url='bundle:' + self.vfs.join(self.fname))
+ bundle2.applybundle(self.repo, gen, self.repo.currenttransaction(),
+ source='unshelve',
+ url='bundle:' + self.vfs.join(self.fname),
+ targetphase=phases.secret)
finally:
fp.close()
--- a/mercurial/bundle2.py Thu Jun 22 21:27:57 2017 -0700
+++ b/mercurial/bundle2.py Thu Jun 22 15:00:19 2017 -0700
@@ -316,14 +316,17 @@
_processchangegroup(op, cg, tr, source, url, **kwargs)
return op
-def applybundle(repo, unbundler, tr, source=None, url=None):
+def applybundle(repo, unbundler, tr, source=None, url=None, **kwargs):
# transform me into unbundler.apply() as soon as the freeze is lifted
- tr.hookargs['bundle2'] = '1'
- if source is not None and 'source' not in tr.hookargs:
- tr.hookargs['source'] = source
- if url is not None and 'url' not in tr.hookargs:
- tr.hookargs['url'] = url
- return processbundle(repo, unbundler, lambda: tr)
+ if isinstance(unbundler, unbundle20):
+ tr.hookargs['bundle2'] = '1'
+ if source is not None and 'source' not in tr.hookargs:
+ tr.hookargs['source'] = source
+ if url is not None and 'url' not in tr.hookargs:
+ tr.hookargs['url'] = url
+ return processbundle(repo, unbundler, lambda: tr)
+ else:
+ return applybundle1(repo, unbundler, tr, source, url, **kwargs)
def processbundle(repo, unbundler, transactiongetter=None, op=None):
"""This function process a bundle, apply effect to/from a repo
--- a/mercurial/commands.py Thu Jun 22 21:27:57 2017 -0700
+++ b/mercurial/commands.py Thu Jun 22 15:00:19 2017 -0700
@@ -5207,13 +5207,8 @@
if not isinstance(gen, bundle2.unbundle20):
txnname = 'unbundle\n%s' % util.hidepassword(url)
with repo.transaction(txnname) as tr:
- if isinstance(gen, bundle2.unbundle20):
- op = bundle2.applybundle(repo, gen, tr,
- source='unbundle',
- url=url)
- else:
- op = bundle2.applybundle1(repo, gen, tr,
- source='unbundle', url=url)
+ 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),
--- a/mercurial/exchange.py Thu Jun 22 21:27:57 2017 -0700
+++ b/mercurial/exchange.py Thu Jun 22 15:00:19 2017 -0700
@@ -1448,8 +1448,8 @@
"changegroupsubset."))
else:
cg = pullop.remote.changegroupsubset(pullop.fetch, pullop.heads, 'pull')
- bundleop = bundle2.applybundle1(pullop.repo, cg, tr, 'pull',
- pullop.remote.url())
+ bundleop = bundle2.applybundle(pullop.repo, cg, tr, 'pull',
+ pullop.remote.url())
pullop.cgresult = bundle2.combinechangegroupresults(bundleop)
def _pullphase(pullop):
@@ -1738,7 +1738,7 @@
# legacy case: bundle1 (changegroup 01)
txnname = "\n".join([source, util.hidepassword(url)])
with repo.lock(), repo.transaction(txnname) as tr:
- op = bundle2.applybundle1(repo, cg, tr, source, url)
+ op = bundle2.applybundle(repo, cg, tr, source, url)
r = bundle2.combinechangegroupresults(op)
else:
r = None
@@ -1999,12 +1999,10 @@
fh = urlmod.open(ui, url)
cg = readbundle(ui, fh, 'stream')
- if isinstance(cg, bundle2.unbundle20):
- bundle2.applybundle(repo, cg, tr, 'clonebundles', url)
- elif isinstance(cg, streamclone.streamcloneapplier):
+ if isinstance(cg, streamclone.streamcloneapplier):
cg.apply(repo)
else:
- bundle2.applybundle1(repo, cg, tr, 'clonebundles', url)
+ bundle2.applybundle(repo, cg, tr, 'clonebundles', url)
return True
except urlerr.httperror as e:
ui.warn(_('HTTP error fetching bundle: %s\n') % str(e))
--- a/mercurial/repair.py Thu Jun 22 21:27:57 2017 -0700
+++ b/mercurial/repair.py Thu Jun 22 15:00:19 2017 -0700
@@ -211,12 +211,8 @@
if not isinstance(gen, bundle2.unbundle20):
txnname = "strip\n%s" % util.hidepassword(tmpbundleurl)
with repo.transaction(txnname) as tr:
- if isinstance(gen, bundle2.unbundle20):
- bundle2.applybundle(repo, gen, tr, source='strip',
- url=tmpbundleurl)
- else:
- bundle2.applybundle1(repo, gen, tr, 'strip', tmpbundleurl,
- emptyok=True)
+ bundle2.applybundle(repo, gen, tr, source='strip',
+ url=tmpbundleurl, emptyok=True)
if not repo.ui.verbose:
repo.ui.popbuffer()
f.close()