##// END OF EJS Templates
fix: obtain base paths before starting workers...
fix: obtain base paths before starting workers This moves calculation of base paths to before work is dispatched. While this does mean that copy tracing will be serialized instead of parallel, it is necessary to be able to prefetch the base contents in a batch, which will likely be more efficient. Differential Revision: https://phab.mercurial-scm.org/D8722

File last commit:

r43812:2fe6121c default
r45633:54009f8c default
Show More
common.py
52 lines | 1.2 KiB | text/x-python | PythonLexer
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 # Copyright 2017 Facebook, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
import os
from mercurial.node import hex
from mercurial import (
error,
extensions,
Yuya Nishihara
py3: wrap tempfile.mkstemp() to use bytes path...
r38182 pycompat,
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 )
Augie Fackler
formatting: blacken the codebase...
r43346
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 def isremotebooksenabled(ui):
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 return b'remotenames' in extensions._extensions and ui.configbool(
b'remotenames', b'bookmarks'
Augie Fackler
formatting: blacken the codebase...
r43346 )
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204
def downloadbundle(repo, unknownbinhead):
index = repo.bundlestore.index
store = repo.bundlestore.store
bundleid = index.getbundle(hex(unknownbinhead))
if bundleid is None:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 raise error.Abort(b'%s head is not known' % hex(unknownbinhead))
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 bundleraw = store.read(bundleid)
return _makebundlefromraw(bundleraw)
Augie Fackler
formatting: blacken the codebase...
r43346
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 def _makebundlefromraw(data):
fp = None
Yuya Nishihara
py3: wrap tempfile.mkstemp() to use bytes path...
r38182 fd, bundlefile = pycompat.mkstemp()
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 try: # guards bundlefile
try: # guards fp
Augie Fackler
cleanup: remove pointless r-prefixes on single-quoted strings...
r43906 fp = os.fdopen(fd, 'wb')
Pulkit Goyal
infinitepush: move the extension to core from fb-hgext...
r37204 fp.write(data)
finally:
fp.close()
except Exception:
try:
os.unlink(bundlefile)
except Exception:
# we would rather see the original exception
pass
raise
return bundlefile