Commit f3909bf2 authored by maruel@chromium.org's avatar maruel@chromium.org

Check for the existence of git before running commands.

Checks in the gclient wrapper and when running any gclient git command.

TEST=none
BUG=none

Patch contributed by Nasser <nasser@codeaurora>

Review URL: http://codereview.chromium.org/518064

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@35762 0039d316-1c4b-4281-b951-d872f2087c98
parent 0c401696
......@@ -7,14 +7,48 @@
base_dir=$(dirname "$0")
# Test git and git --version.
function test_git {
local GITV="$(git --version)" || {
echo "git isn't installed, please install it"
exit 1
}
GITV="${GITV##* }" # Only examine last word (i.e. version number)
local GITD=( ${GITV//./ } ) # Split version number into decimals
if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then
echo "git version is ${GITV}, please update to a version later than 1.6"
exit 1
fi
}
# Test git svn and git svn --version.
function test_git_svn {
local GITV="$(git svn --version)" || {
echo "git-svn isn't installed, please install it"
exit 1
}
GITV="${GITV#* version }" # git svn --version has extra output to remove.
GITV="${GITV% (svn*}"
local GITD=( ${GITV//./ } ) # Split version number into decimals
if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then
echo "git version is ${GITV}, please update to a version later than 1.6"
exit 1
fi
}
# Update git checkouts prior the cygwin check, we don't want to use msysgit.
if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/.git" ]
then
test_git_svn
(cd "$base_dir"; git svn rebase -q -q)
fi
if [ "X$DEPOT_TOOLS_UPDATE" != "X0" -a -e "$base_dir/git-cl-repo/.git" ]
then
test_git
(cd "$base_dir/git-cl-repo"; git pull -q)
fi
......
......@@ -286,8 +286,13 @@ class GitWrapper(SCMWrapper, scm.GIT):
cwd = self.checkout_path
cmd = [self.COMMAND]
cmd.extend(args)
sp = subprocess.Popen(cmd, cwd=cwd, stdout=stdout)
output = sp.communicate()[0]
logging.debug(cmd)
try:
sp = subprocess.Popen(cmd, cwd=cwd, stdout=stdout)
output = sp.communicate()[0]
except OSError:
raise gclient_utils.Error("git command '%s' failed to run." %
' '.join(cmd) + "\nCheck that you have git installed.")
if checkrc and sp.returncode:
raise gclient_utils.Error('git command %s returned %d' %
(args[0], sp.returncode))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment