Fix error handling when switching versions

git module used to check stderr for the string 'error' after calling
switch_version().  This changes that to just look at the return code to
determine whether the command failed.  If the rc is not zero, the git
module will call fail_json().

The problem is that git checkout will summarize the commit message,
such as:

    HEAD is now at ea38409... removing artificial error

When the string 'error' is the commit message, this check will
erroneously think the command failed.

This also removes the method switchLocalBranch() since it is no longer
used.
reviewable/pr18780/r1
Stephen Fromm 12 years ago
parent 70b1d00abe
commit 38957b2cf0

9
git

@ -58,11 +58,6 @@ def reset(dest):
rc = cmd.returncode rc = cmd.returncode
return (rc, out, err) return (rc, out, err)
def switchLocalBranch( branch ):
cmd = "git checkout %s" % branch
cmd = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return cmd.communicate()
def get_branches(module, dest): def get_branches(module, dest):
os.chdir(dest) os.chdir(dest)
branches = [] branches = []
@ -156,7 +151,7 @@ def main():
gitconfig = os.path.join(dest, '.git', 'config') gitconfig = os.path.join(dest, '.git', 'config')
out, err, status = (None, None, None) rc, out, err, status = (0, None, None, None)
# if there is no git configuration, do a clone operation # if there is no git configuration, do a clone operation
# else pull and switch the version # else pull and switch the version
@ -180,7 +175,7 @@ def main():
# switch to version specified regardless of whether # switch to version specified regardless of whether
# we cloned or pulled # we cloned or pulled
(rc, out, err) = switch_version(module, dest, remote, version) (rc, out, err) = switch_version(module, dest, remote, version)
if err.find('error') != -1: if rc != 0:
module.fail_json(msg=err) module.fail_json(msg=err)
# determine if we changed anything # determine if we changed anything

Loading…
Cancel
Save