summaryrefslogtreecommitdiffstats
path: root/repo
diff options
context:
space:
mode:
Diffstat (limited to 'repo')
-rwxr-xr-xrepo19
1 files changed, 16 insertions, 3 deletions
diff --git a/repo b/repo
index 56d784fb..1587fef4 100755
--- a/repo
+++ b/repo
@@ -278,6 +278,20 @@ def _Init(args):
278 raise 278 raise
279 279
280 280
281def ParseGitVersion(ver_str):
282 if not ver_str.startswith('git version '):
283 return None
284
285 num_ver_str = ver_str[len('git version '):].strip().split('-')[0]
286 to_tuple = []
287 for num_str in num_ver_str.split('.')[:3]:
288 if num_str.isdigit():
289 to_tuple.append(int(num_str))
290 else:
291 to_tuple.append(0)
292 return tuple(to_tuple)
293
294
281def _CheckGitVersion(): 295def _CheckGitVersion():
282 cmd = [GIT, '--version'] 296 cmd = [GIT, '--version']
283 try: 297 try:
@@ -295,12 +309,11 @@ def _CheckGitVersion():
295 proc.stdout.close() 309 proc.stdout.close()
296 proc.wait() 310 proc.wait()
297 311
298 if not ver_str.startswith('git version '): 312 ver_act = ParseGitVersion(ver_str)
313 if ver_act is None:
299 _print('error: "%s" unsupported' % ver_str, file=sys.stderr) 314 _print('error: "%s" unsupported' % ver_str, file=sys.stderr)
300 raise CloneFailure() 315 raise CloneFailure()
301 316
302 ver_str = ver_str[len('git version '):].strip()
303 ver_act = tuple(map(int, ver_str.split('.')[0:3]))
304 if ver_act < MIN_GIT_VERSION: 317 if ver_act < MIN_GIT_VERSION:
305 need = '.'.join(map(str, MIN_GIT_VERSION)) 318 need = '.'.join(map(str, MIN_GIT_VERSION))
306 _print('fatal: git %s or later required' % need, file=sys.stderr) 319 _print('fatal: git %s or later required' % need, file=sys.stderr)