GitPython - mit git.describe nur light-weight tags

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pythonfreak9090
User
Beiträge: 1
Registriert: Donnerstag 18. März 2021, 16:56

Hallo Freunde,

ich würde gerne herausfinden wie man mit der git.describe funktion nur den light-weight tag zurückbekommt. Ich finde die Dokumentation nicht gerade hilfreich dasteht nur:

--tags
Instead of using only the annotated tags, use any tag found in refs/tags namespace. This option enables matching a lightweight (non-annotated) tag.
(https://git-scm.com/docs/git-describe#D ... txt---tags)

Und das verstehe ich in Verbindung mit GitPython bzw. git.describe nicht.

Was ich bisher gemacht habe:

Code: Alles auswählen

repo_dir = "example-git-repo-url.com"

repo = git.Repo(repo_dir)

tag_name = repo.git.describe(["--tags", "--abbrev=0", "--first-parent"])
tag_hash = repo.git.rev_parse(["--short=8", tag_name])
logger.info("Latest tag: %s (%s)", tag_name, tag_hash)

Mein Problem: dies kann auch ein annotated tag sein. Ich habe gelesen, das git.describe die bevorzugt. Ich möchte die aber gar nicht haben sondern nur die lightweight tags.
Ich brauche nämlich den hash vom light-weight tag und hole mir dann eine datei aus meiner Datenbank raus mit diesem hash. Falls aber jemand eine Message beim erstellen des tags schreibt bekomme ich automatisch die annotated tags. Ich möchte das verhindern, weiß aber nicht wie. Kann mir jemand helfen?


Danke!
Antworten