On Mon, Mar 25, 2019 at 7:49 AM Jeff King <peff@xxxxxxxx> wrote: > > On Mon, Mar 25, 2019 at 08:50:14AM -0500, Robert Dailey wrote: > > > On Thu, Mar 21, 2019 at 2:29 PM Jeff King <peff@xxxxxxxx> wrote: > > > Tags can point to any object, including another tag. It looks like > > > somebody made an annotated tag of an annotated tag (probably by > > > mistake, given that they have the same tag-name). > > [..] > > Thanks for explaining. This is very helpful. Am I naive to think that > > this should be an error? I haven't seen a valid _pragmatic_ use for > > tags pointing to tags. In 100% of cases (including this one), it is > > done out of error. As per your example, users try to "correct" an > > annotated tag pointing at a wrong tag or commit. What they expect is > > the tag to point to the other tag's commit, but that's not what they > > get. > > I don't think I've ever seen a tag-to-a-tag in the wild, but I wouldn't > be surprised if somebody has found a use for it. For example, because > tags can be signed, I can make a signature of your signature, showing a > cryptographic chain of custody. For a while the Atlassian Bamboo team followed a workflow where they would do a build in CI, tag that build and then deploy it to a sandbox environment for smoke testing. If it passed the smoke tests, it would get "promoted" from the sandbox environment to internal instances used by the various teams to do their builds. When a sandbox build was "promoted", they'd create a tag of the sandbox build's tag to have traceability between the two environments. I'm not advocating for or judging that workflow one way or another, and the Bamboo team has since moved on to a different workflow. I just thought I'd share it as a tag-of-tag workflow that I've seen a real team using. (There was one place in Bitbucket Server's code where we didn't handle recursive tags correctly, so their workflow caused some errors that I needed to make some adjustments for. As a result, Bitbucket Server's test suite now includes tests that cover tag-of-tag behaviors.) Bryan