Fix git module to update branch to latest when using version=<branch>

The git module would not pull in updates to a branch when
version=<branch>.  This updates that block to checkout the branch
and then do a git reset --hard <remote>/<branch>.  This
should now track updates to a branch.
This commit is contained in:
Stephen Fromm 2012-12-04 11:40:48 -08:00
parent 5809807bc1
commit b1ec6e8163

View file

@ -199,6 +199,12 @@ def switch_version(module, dest, remote, version):
if version != 'HEAD': if version != 'HEAD':
if not is_local_branch(module, dest, version) and is_remote_branch(module, dest, remote, version): if not is_local_branch(module, dest, version) and is_remote_branch(module, dest, remote, version):
cmd = "git checkout --track -b %s %s/%s" % (version, remote, version) cmd = "git checkout --track -b %s %s/%s" % (version, remote, version)
elif is_local_branch(module, dest, version):
cmd = "git checkout --force %s" % version
(rc, out, err) = _run("git checkout --force %s" % version)
if rc != 0:
module.fail_json(msg="Failed to checkout branch %s" % version)
cmd = "git reset --hard %s/%s" % (remote, version)
else: else:
cmd = "git checkout --force %s" % version cmd = "git checkout --force %s" % version
else: else: