Pick a tag if multiple tags exist on a SHA.

Fixes #2311
This commit is contained in:
Matt Layman 2022-03-30 01:08:52 -04:00 committed by Anthony Sottile
parent a522507020
commit e8b46c1b16
3 changed files with 36 additions and 0 deletions

View file

@ -229,3 +229,18 @@ def check_for_cygwin_mismatch() -> None:
f' - python {exe_type[is_cygwin_python]}\n'
f' - git {exe_type[is_cygwin_git]}\n',
)
def get_best_candidate_tag(rev: str, git_repo: str) -> str:
"""Get the best tag candidate.
Multiple tags can exist on a SHA. Sometimes a moving tag is attached
to a version tag. Try to pick the tag that looks like a version.
"""
tags = cmd_output(
'git', *NO_FS_MONITOR, 'tag', '--points-at', rev, cwd=git_repo,
)[1].splitlines()
for tag in tags:
if '.' in tag:
return tag
return rev