git: fix change testing when version is HEAD (#3025)

When `version` is not specified, it defaults to "HEAD".  "HEAD" is not a
remote tag, and it's not listed in the output of get_branches(), so we'd
keep repo_updated at the default value (None) and then return early with
changed=True in --check mode, even when before == after.

Fixes #3024.
This commit is contained in:
Marius Gedminas 2016-06-21 19:22:53 +03:00 committed by Matt Clay
parent 3d5f84c528
commit 3a8a11d85f

View file

@ -819,6 +819,8 @@ def main():
if local_mods:
module.exit_json(changed=True, before=before, after=remote_head,
msg="Local modifications exist")
elif version == 'HEAD':
repo_updated = False
elif is_remote_tag(git_path, module, dest, repo, version):
# if the remote is a tag and we have the tag locally, exit early
if version in get_tags(git_path, module, dest):