Show More
@@ -1199,7 +1199,7 b' def _aborthistedit(ui, repo, state):' | |||
|
1199 | 1199 | gen = exchange.readbundle(ui, f, backupfile) |
|
1200 | 1200 | with repo.transaction('histedit.abort') as tr: |
|
1201 | 1201 | if not isinstance(gen, bundle2.unbundle20): |
|
1202 | gen.apply(repo, 'histedit', 'bundle:' + backupfile) | |
|
1202 | gen.apply(repo, tr, 'histedit', 'bundle:' + backupfile) | |
|
1203 | 1203 | else: |
|
1204 | 1204 | bundle2.applybundle(repo, gen, tr, |
|
1205 | 1205 | source='histedit', |
@@ -127,7 +127,7 b' class shelvedfile(object):' | |||
|
127 | 127 | try: |
|
128 | 128 | gen = exchange.readbundle(self.repo.ui, fp, self.fname, self.vfs) |
|
129 | 129 | if not isinstance(gen, bundle2.unbundle20): |
|
130 | gen.apply(self.repo, 'unshelve', | |
|
130 | gen.apply(self.repo, self.repo.currenttransaction(), 'unshelve', | |
|
131 | 131 | 'bundle:' + self.vfs.join(self.fname), |
|
132 | 132 | targetphase=phases.secret) |
|
133 | 133 | else: |
@@ -1474,12 +1474,7 b' def handlechangegroup(op, inpart):' | |||
|
1474 | 1474 | This is a very early implementation that will massive rework before being |
|
1475 | 1475 | inflicted to any end-user. |
|
1476 | 1476 | """ |
|
1477 | # Make sure we trigger a transaction creation | |
|
1478 | # | |
|
1479 | # The addchangegroup function will get a transaction object by itself, but | |
|
1480 | # we need to make sure we trigger the creation of a transaction object used | |
|
1481 | # for the whole processing scope. | |
|
1482 | op.gettransaction() | |
|
1477 | tr = op.gettransaction() | |
|
1483 | 1478 | unpackerversion = inpart.params.get('version', '01') |
|
1484 | 1479 | # We should raise an appropriate exception here |
|
1485 | 1480 | cg = changegroup.getunbundler(unpackerversion, inpart, None) |
@@ -1497,7 +1492,8 b' def handlechangegroup(op, inpart):' | |||
|
1497 | 1492 | op.repo.requirements.add('treemanifest') |
|
1498 | 1493 | op.repo._applyopenerreqs() |
|
1499 | 1494 | op.repo._writerequirements() |
|
1500 |
ret = cg.apply(op.repo, 'bundle2', 'bundle2', |
|
|
1495 | ret = cg.apply(op.repo, tr, 'bundle2', 'bundle2', | |
|
1496 | expectedtotal=nbchangesets) | |
|
1501 | 1497 | op.records.add('changegroup', {'return': ret}) |
|
1502 | 1498 | if op.reply is not None: |
|
1503 | 1499 | # This is definitely not the final form of this |
@@ -1555,18 +1551,13 b' def handleremotechangegroup(op, inpart):' | |||
|
1555 | 1551 | |
|
1556 | 1552 | real_part = util.digestchecker(url.open(op.ui, raw_url), size, digests) |
|
1557 | 1553 | |
|
1558 | # Make sure we trigger a transaction creation | |
|
1559 | # | |
|
1560 | # The addchangegroup function will get a transaction object by itself, but | |
|
1561 | # we need to make sure we trigger the creation of a transaction object used | |
|
1562 | # for the whole processing scope. | |
|
1563 | op.gettransaction() | |
|
1554 | tr = op.gettransaction() | |
|
1564 | 1555 | from . import exchange |
|
1565 | 1556 | cg = exchange.readbundle(op.repo.ui, real_part, raw_url) |
|
1566 | 1557 | if not isinstance(cg, changegroup.cg1unpacker): |
|
1567 | 1558 | raise error.Abort(_('%s: not a bundle version 1.0') % |
|
1568 | 1559 | util.hidepassword(raw_url)) |
|
1569 | ret = cg.apply(op.repo, 'bundle2', 'bundle2') | |
|
1560 | ret = cg.apply(op.repo, tr, 'bundle2', 'bundle2') | |
|
1570 | 1561 | op.records.add('changegroup', {'return': ret}) |
|
1571 | 1562 | if op.reply is not None: |
|
1572 | 1563 | # This is definitely not the final form of this |
@@ -256,7 +256,7 b' class cg1unpacker(object):' | |||
|
256 | 256 | repo.ui.progress(_('manifests'), None) |
|
257 | 257 | self.callback = None |
|
258 | 258 | |
|
259 | def apply(self, repo, srctype, url, emptyok=False, | |
|
259 | def apply(self, repo, tr, srctype, url, emptyok=False, | |
|
260 | 260 | targetphase=phases.draft, expectedtotal=None): |
|
261 | 261 | """Add the changegroup returned by source.read() to this repo. |
|
262 | 262 | srctype is a string like 'push', 'pull', or 'unbundle'. url is |
@@ -279,12 +279,11 b' class cg1unpacker(object):' | |||
|
279 | 279 | changesets = files = revisions = 0 |
|
280 | 280 | |
|
281 | 281 | try: |
|
282 | with repo.transaction("\n".join([srctype, | |
|
283 | util.hidepassword(url)])) as tr: | |
|
284 | # The transaction could have been created before and already | |
|
285 | # carries source information. In this case we use the top | |
|
286 | # level data. We overwrite the argument because we need to use | |
|
287 | # the top level value (if they exist) in this function. | |
|
282 | if True: | |
|
283 | # The transaction may already carry source information. In this | |
|
284 | # case we use the top level data. We overwrite the argument | |
|
285 | # because we need to use the top level value (if they exist) | |
|
286 | # in this function. | |
|
288 | 287 | srctype = tr.hookargs.setdefault('source', srctype) |
|
289 | 288 | url = tr.hookargs.setdefault('url', url) |
|
290 | 289 | repo.hook('prechangegroup', throw=True, **tr.hookargs) |
@@ -5339,8 +5339,8 b' def unbundle(ui, repo, fname1, *fnames, ' | |||
|
5339 | 5339 | modheads = changegroup.combineresults(changes) |
|
5340 | 5340 | else: |
|
5341 | 5341 | txnname = 'unbundle\n%s' % util.hidepassword(url) |
|
5342 | with repo.transaction(txnname): | |
|
5343 | modheads = gen.apply(repo, 'unbundle', url) | |
|
5342 | with repo.transaction(txnname) as tr: | |
|
5343 | modheads = gen.apply(repo, tr, 'unbundle', url) | |
|
5344 | 5344 | |
|
5345 | 5345 | return postincoming(ui, repo, modheads, opts.get(r'update'), None, None) |
|
5346 | 5346 |
@@ -1430,7 +1430,7 b' def _pullchangeset(pullop):' | |||
|
1430 | 1430 | pullop.repo.ui.status(_("no changes found\n")) |
|
1431 | 1431 | pullop.cgresult = 0 |
|
1432 | 1432 | return |
|
1433 | pullop.gettransaction() | |
|
1433 | tr = pullop.gettransaction() | |
|
1434 | 1434 | if pullop.heads is None and list(pullop.common) == [nullid]: |
|
1435 | 1435 | pullop.repo.ui.status(_("requesting all changes\n")) |
|
1436 | 1436 | elif pullop.heads is None and pullop.remote.capable('changegroupsubset'): |
@@ -1449,7 +1449,7 b' def _pullchangeset(pullop):' | |||
|
1449 | 1449 | "changegroupsubset.")) |
|
1450 | 1450 | else: |
|
1451 | 1451 | cg = pullop.remote.changegroupsubset(pullop.fetch, pullop.heads, 'pull') |
|
1452 | pullop.cgresult = cg.apply(pullop.repo, 'pull', pullop.remote.url()) | |
|
1452 | pullop.cgresult = cg.apply(pullop.repo, tr, 'pull', pullop.remote.url()) | |
|
1453 | 1453 | |
|
1454 | 1454 | def _pullphase(pullop): |
|
1455 | 1455 | # Get remote phases data from remote |
@@ -1735,8 +1735,8 b' def unbundle(repo, cg, heads, source, ur' | |||
|
1735 | 1735 | if not isinstance(cg, bundle2.unbundle20): |
|
1736 | 1736 | # legacy case: bundle1 (changegroup 01) |
|
1737 | 1737 | txnname = "\n".join([source, util.hidepassword(url)]) |
|
1738 | with repo.lock(), repo.transaction(txnname): | |
|
1739 | r = cg.apply(repo, source, url) | |
|
1738 | with repo.lock(), repo.transaction(txnname) as tr: | |
|
1739 | r = cg.apply(repo, tr, source, url) | |
|
1740 | 1740 | else: |
|
1741 | 1741 | r = None |
|
1742 | 1742 | try: |
@@ -2001,7 +2001,7 b' def trypullbundlefromurl(ui, repo, url):' | |||
|
2001 | 2001 | elif isinstance(cg, streamclone.streamcloneapplier): |
|
2002 | 2002 | cg.apply(repo) |
|
2003 | 2003 | else: |
|
2004 | cg.apply(repo, 'clonebundles', url) | |
|
2004 | cg.apply(repo, tr, 'clonebundles', url) | |
|
2005 | 2005 | return True |
|
2006 | 2006 | except urlerr.httperror as e: |
|
2007 | 2007 | ui.warn(_('HTTP error fetching bundle: %s\n') % str(e)) |
@@ -208,8 +208,8 b' def strip(ui, repo, nodelist, backup=Tru' | |||
|
208 | 208 | url=tmpbundleurl) |
|
209 | 209 | else: |
|
210 | 210 | txnname = "strip\n%s" % util.hidepassword(tmpbundleurl) |
|
211 | with repo.transaction(txnname): | |
|
212 | gen.apply(repo, 'strip', tmpbundleurl, True) | |
|
211 | with repo.transaction(txnname) as tr: | |
|
212 | gen.apply(repo, tr, 'strip', tmpbundleurl, True) | |
|
213 | 213 | if not repo.ui.verbose: |
|
214 | 214 | repo.ui.popbuffer() |
|
215 | 215 | f.close() |
General Comments 0
You need to be logged in to leave comments.
Login now