sync: Only parallelize gc for git >= 1.7.2
This minimum version is required for the -c argument to set config on
the command line. Without this option, git by default uses as many
threads per invocation as there are CPUs, so we cannot safely
parallelize without hosing a system.
Change-Id: I8fd313dd84917658162b5134b2d9aa34a96f2772
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 8e9477a..15f69f7 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -44,7 +44,7 @@
except ImportError:
multiprocessing = None
-from git_command import GIT
+from git_command import GIT, git_require
from git_refs import R_HEADS, HEAD
from main import WrapperModule
from project import Project
@@ -310,7 +310,8 @@
return fetched
def _GCProjects(self, projects):
- if multiprocessing:
+ has_dash_c = git_require((1, 7, 2))
+ if multiprocessing and has_dash_c:
cpu_count = multiprocessing.cpu_count()
else:
cpu_count = 1