exchange: create transaction for bundle1 unbundling earlier
changegroup.apply() currently creates a transation if there isn't
already one. Having the callers of that method pass in an existing
transaction seems a little cleaner. To do that, we need to make sure
all callers have a transaction. Since the transaction name is used as
a hook argument (HG_TXNNAME), we need to match the name from
changegroup.apply().
--- a/mercurial/exchange.py Mon Jun 19 00:06:23 2017 -0700
+++ b/mercurial/exchange.py Thu Jun 15 16:10:53 2017 -0700
@@ -1734,7 +1734,8 @@
# push can proceed
if not isinstance(cg, bundle2.unbundle20):
# legacy case: bundle1 (changegroup 01)
- with repo.lock():
+ txnname = "\n".join([source, util.hidepassword(url)])
+ with repo.lock(), repo.transaction(txnname):
r = cg.apply(repo, source, url)
else:
r = None