Get tags of a commit
Question:
Given an object of GitPython Commit, how can I get the tags related to this commit?
I’d enjoy having something like:
next(repo.iter_commits()).tags
Answers:
The problem is that tags point to commits, not the other way around. To get this information would require a linear scan of all tags to find out which ones point to the given commit. You could probably write something yourself that would do it. The following would get you a commit-to-tags dictionary:
tagmap = {}
for t in repo.tags():
tagmap.setdefault(r.commit(t), []).append(t)
And for a given commit, you can get any tags associated with it from:
tags = tagmap[repo.commit(commit_id)]
I believe you can use something like:
git tag –points-at
Should be quite easy to run from GitPython
Given an object of GitPython Commit, how can I get the tags related to this commit?
I’d enjoy having something like:
next(repo.iter_commits()).tags
The problem is that tags point to commits, not the other way around. To get this information would require a linear scan of all tags to find out which ones point to the given commit. You could probably write something yourself that would do it. The following would get you a commit-to-tags dictionary:
tagmap = {}
for t in repo.tags():
tagmap.setdefault(r.commit(t), []).append(t)
And for a given commit, you can get any tags associated with it from:
tags = tagmap[repo.commit(commit_id)]
I believe you can use something like:
git tag –points-at
Should be quite easy to run from GitPython