Ensure installed git version is above 1.8.1 [Bug #5637]

Versions of git before 1.8.1 do not support git submodule --recursive sync
This commit makes update_submodules() exit with an error message if the version is <1.8.1

https://github.com/servo/servo/issues/5637
This commit is contained in:
ringmaster101 2015-04-11 19:16:53 +00:00 committed by Corey Farwell
parent c724444ccb
commit c4b73e703a

View file

@ -7,6 +7,7 @@ import subprocess
import sys import sys
import tarfile import tarfile
import urllib2 import urllib2
from distutils.version import LooseVersion
from mach.decorators import ( from mach.decorators import (
CommandArgument, CommandArgument,
@ -177,6 +178,13 @@ class MachCommands(CommandBase):
description='Update submodules', description='Update submodules',
category='bootstrap') category='bootstrap')
def update_submodules(self): def update_submodules(self):
# Ensure that the installed git version is >= 1.8.1
gitversion_output = subprocess.check_output(["git", "--version"])
gitversion = LooseVersion(gitversion_output.split(" ")[-1])
if gitversion < LooseVersion("1.8.1"):
print("Git version 1.8.1 or above required. Current version is {}"
.format(gitversion))
sys.exit(1)
submodules = subprocess.check_output(["git", "submodule", "status"]) submodules = subprocess.check_output(["git", "submodule", "status"])
for line in submodules.split('\n'): for line in submodules.split('\n'):
components = line.strip().split(' ') components = line.strip().split(' ')