| Index: gclient_utils.py
|
| diff --git a/gclient_utils.py b/gclient_utils.py
|
| index 44dba57df2f8230c247e3bbf96eee5c58e61448c..3517946435a6efe346af97bb539f15f46f624166 100644
|
| --- a/gclient_utils.py
|
| +++ b/gclient_utils.py
|
| @@ -30,6 +30,14 @@ RETRY_INITIAL_SLEEP = 0.5
|
| _WARNINGS = []
|
|
|
|
|
| +# These repos are known to cause OOM errors on 32-bit platforms, due the the
|
| +# very large objects they contain. It is not safe to use threaded index-pack
|
| +# when cloning/fetching them.
|
| +THREADED_INDEX_PACK_BLACKLIST = [
|
| + 'https://chromium.googlesource.com/chromium/reference_builds/chrome_win.git'
|
| +]
|
| +
|
| +
|
| class Error(Exception):
|
| """gclient exception class."""
|
| def __init__(self, msg, *args, **kwargs):
|
| @@ -990,10 +998,13 @@ def DefaultDeltaBaseCacheLimit():
|
| else:
|
| return '512m'
|
|
|
| -def DefaultIndexPackConfig():
|
| +def DefaultIndexPackConfig(url=''):
|
| """Return reasonable default values for configuring git-index-pack.
|
|
|
| Experiments suggest that higher values for pack.threads don't improve
|
| performance."""
|
| - return ['-c', 'pack.threads=5', '-c',
|
| - 'core.deltaBaseCacheLimit=%s' % DefaultDeltaBaseCacheLimit()]
|
| + cache_limit = DefaultDeltaBaseCacheLimit()
|
| + result = ['-c', 'core.deltaBaseCacheLimit=%s' % cache_limit]
|
| + if url in THREADED_INDEX_PACK_BLACKLIST:
|
| + result.extend(['-c', 'pack.threads=1'])
|
| + return result
|
|
|