From: Ulrich Windl Date: Mon, 03 Jun 2019 06:06:54 GMT Subject: Antw: Re: Q: git describe --always --tags .. gives "warning: tag 'tag1' is really 'tag2' here" Message-ID: <5CF4B8FE020000A100031962@gwsmtp.uni-regensburg.de> In-Reply-To: >>> Junio C Hamano schrieb am 29.05.2019 um 20:01 in Nachricht : > "Ulrich Windl" writes: > >> So I got the response: >> warning: tag 'isredir‑0.3.0' is really 'iredir‑0.3.0' here >> isredir‑0.3.0‑3‑gaf467c7 > > I suspect that "git cat‑file tag isredir‑0.3.0" would begin like > > $ git cat‑file tag iredir‑0.3.0 > object ..... > type commit > tag isredir‑0.3.0 > tagger ... > > Notice that "tag" line records the true name of that tag, which does > not match where you stored that tag in refs/tags/ hierarchy? Hi! Sorry for the delay (long weekend): Yes it is as you guessed. The tag is a signed one, BTW. > > While trying to describe af467c7 by following its ancestry and > finding the ancestor three generations ago, the command found > refs/tags/iredir‑0.3.0 and then noticed that discrepancy, which is > what the warning is about. > > Imagine you have only v1.0.0 (which is with known issues) but > somebody did "cd .git/refs/tags && mv v1.0.0 v1.1.0" in an attempt > to fool you. The fact that your 'master' is a bit ahead of the > commit that was tagged with the tag object (which is v1.0.0 but > pretending to be v1.1.0) can be seen with "describe", but the > command is careful enough to use the real version number > (i.e. v1.0.0) and not the refname (i.e. v1.1.0). Still I'm missing a verbose version of "git tag" that shows the commit IDs along with the tag names. Unfortunately "-v" is not "--verbose" but "--verify" (as opposed to "git remote" for example). Regards, Ulrich