Mercurial > hg-stable
changeset 33052:2baef42a2881
bundle: make applybundle1() return a bundleoperation
See previous commit for motivation. It already lets us share a little
bit more code in commands.py.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 21 Jun 2017 21:08:48 -0700 |
parents | b82615afde65 |
children | e425f5aabe70 |
files | mercurial/bundle2.py mercurial/commands.py mercurial/exchange.py |
diffstat | 3 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundle2.py Fri Jun 16 10:25:11 2017 -0700 +++ b/mercurial/bundle2.py Wed Jun 21 21:08:48 2017 -0700 @@ -311,8 +311,10 @@ raise TransactionUnavailable() def applybundle1(repo, cg, tr, source, url, **kwargs): - ret, addednodes = cg.apply(repo, tr, source, url, **kwargs) - return ret + # the transactiongetter won't be used, but we might as well set it + op = bundleoperation(repo, lambda: tr) + _processchangegroup(op, cg, tr, source, url, **kwargs) + return op def applybundle(repo, unbundler, tr, source=None, url=None): # transform me into unbundler.apply() as soon as the freeze is lifted
--- a/mercurial/commands.py Fri Jun 16 10:25:11 2017 -0700 +++ b/mercurial/commands.py Wed Jun 21 21:08:48 2017 -0700 @@ -5214,13 +5214,12 @@ hint=_("see https://mercurial-scm.org/" "wiki/BundleFeature for more " "information")) - modheads = bundle2.combinechangegroupresults(op) else: txnname = 'unbundle\n%s' % util.hidepassword(url) with repo.transaction(txnname) as tr: - modheads = bundle2.applybundle1(repo, gen, tr, - source='unbundle', - url=url) + op = bundle2.applybundle1(repo, gen, tr, source='unbundle', + url=url) + modheads = bundle2.combinechangegroupresults(op) return postincoming(ui, repo, modheads, opts.get(r'update'), None, None)
--- a/mercurial/exchange.py Fri Jun 16 10:25:11 2017 -0700 +++ b/mercurial/exchange.py Wed Jun 21 21:08:48 2017 -0700 @@ -1448,8 +1448,9 @@ "changegroupsubset.")) else: cg = pullop.remote.changegroupsubset(pullop.fetch, pullop.heads, 'pull') - pullop.cgresult = bundle2.applybundle1(pullop.repo, cg, tr, 'pull', - pullop.remote.url()) + bundleop = bundle2.applybundle1(pullop.repo, cg, tr, 'pull', + pullop.remote.url()) + pullop.cgresult = bundle2.combinechangegroupresults(bundleop) def _pullphase(pullop): # Get remote phases data from remote @@ -1737,7 +1738,8 @@ # legacy case: bundle1 (changegroup 01) txnname = "\n".join([source, util.hidepassword(url)]) with repo.lock(), repo.transaction(txnname) as tr: - r = bundle2.applybundle1(repo, cg, tr, source, url) + op = bundle2.applybundle1(repo, cg, tr, source, url) + r = bundle2.combinechangegroupresults(op) else: r = None try: