D288: bundlerepo: move temp bundle creation to a separate function
durham (Durham Goode)
phabricator at mercurial-scm.org
Wed Aug 23 16:31:19 EDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG702a26fec3e2: bundlerepo: move temp bundle creation to a separate function (authored by durham).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D288?vs=1215&id=1227
REVISION DETAIL
https://phab.mercurial-scm.org/D288
AFFECTED FILES
mercurial/bundlerepo.py
CHANGE DETAILS
diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
--- a/mercurial/bundlerepo.py
+++ b/mercurial/bundlerepo.py
@@ -264,24 +264,6 @@
class bundlerepository(localrepo.localrepository):
def __init__(self, ui, path, bundlename):
- def _writetempbundle(read, suffix, header=''):
- """Write a temporary file to disk
-
- This is closure because we need to make sure this tracked by
- self.tempfile for cleanup purposes."""
- fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-",
- suffix=".hg10un")
- self.tempfile = temp
-
- with os.fdopen(fdtemp, pycompat.sysstr('wb')) as fptemp:
- fptemp.write(header)
- while True:
- chunk = read(2**18)
- if not chunk:
- break
- fptemp.write(chunk)
-
- return self.vfs.open(self.tempfile, mode="rb")
self._tempparent = None
try:
localrepo.localrepository.__init__(self, ui, path)
@@ -314,17 +296,18 @@
msg = _('Unsupported changegroup version: %s')
raise error.Abort(msg % version)
if self.bundle.compressed():
- cgstream = _writetempbundle(part.read,
- ".cg%sun" % version)
+ cgstream = self._writetempbundle(part.read,
+ ".cg%sun" % version)
if cgstream is None:
raise error.Abort(_('No changegroups found'))
cgstream.seek(0)
self.bundle = changegroup.getunbundler(version, cgstream, 'UN')
elif self.bundle.compressed():
- f = _writetempbundle(self.bundle.read, '.hg10un', header='HG10UN')
+ f = self._writetempbundle(self.bundle.read, '.hg10un',
+ header='HG10UN')
self.bundlefile = self.bundle = exchange.readbundle(ui, f,
bundlename,
self.vfs)
@@ -336,6 +319,23 @@
phases.retractboundary(self, None, phases.draft,
[ctx.node() for ctx in self[self.firstnewrev:]])
+ def _writetempbundle(self, readfn, suffix, header=''):
+ """Write a temporary file to disk
+ """
+ fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-",
+ suffix=".hg10un")
+ self.tempfile = temp
+
+ with os.fdopen(fdtemp, pycompat.sysstr('wb')) as fptemp:
+ fptemp.write(header)
+ while True:
+ chunk = readfn(2**18)
+ if not chunk:
+ break
+ fptemp.write(chunk)
+
+ return self.vfs.open(self.tempfile, mode="rb")
+
@localrepo.unfilteredpropertycache
def _phasecache(self):
return bundlephasecache(self, self._phasedefaults)
To: durham, #hg-reviewers, indygreg
Cc: krbullock, martinvonz, indygreg, lothiraldan, mercurial-devel
More information about the Mercurial-devel
mailing list