All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Dailey <rcdailey.lists@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Git <git@vger.kernel.org>
Subject: Re: Strange annotated tag issue
Date: Mon, 25 Mar 2019 08:50:14 -0500	[thread overview]
Message-ID: <CAHd499BTACjf91Ohi34ozFQE_NOn-LVf-35t7h4CTtDFoMCpWw@mail.gmail.com> (raw)
In-Reply-To: <20190321192928.GA19427@sigill.intra.peff.net>

On Thu, Mar 21, 2019 at 2:29 PM Jeff King <peff@peff.net> 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).
>
> Try this:
>
>   git init
>   git commit -m commit --allow-empty
>   git tag -m inner mytag HEAD
>   git tag -f -m outer mytag mytag
>
>   git show mytag
>
> which produces similar output. You can walk the chain yourself with "git
> at-file tag 4.2.0.1900". That will have a "type" and "object" field
> which presumably point to the second commit.
>
> My guess is that somebody was trying to amend the tag commit message,
> but used the tag name to create the second one, rather than the original
> commit. I.e,. any of these would have worked for the second command to
> replace the old tag:
>
>   git tag -f -m 'new message' mytag HEAD
>
>   git tag -f -m 'new message' 2fcfd00ef84572fb88852be55315914f37e91e11
>
>   git tag -f -m 'new message' mytag mytag^{commit}
>
> If the original tag isn't signed, you could rewrite it at this point
> using one of the above commands, coupled with GIT_COMMITTER_* to munge
> the author and date.  But note that fetch doesn't update modified tags
> by default, so it may just cause confusion if you have a lot of people
> using the repository.

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.

From a high-level, pragmatic perspective, doesn't it make more sense
to change the git behavior so that annotated tags may only point to
commit objects? And in the `git tag -f -m outer mytag mytag` case in
your example, this would automatically perform `mytag^{}` to ensure
that the behavior the user expects is the behavior they get?

  reply	other threads:[~2019-03-25 13:50 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-21 16:59 Strange annotated tag issue Robert Dailey
2019-03-21 19:04 ` Bryan Turner
2019-03-21 19:39   ` Jeff King
2019-03-21 19:29 ` Jeff King
2019-03-25 13:50   ` Robert Dailey [this message]
2019-03-25 14:49     ` Jeff King
2019-03-25 15:31       ` Robert Dailey
2019-03-25 18:43       ` Bryan Turner
2019-03-25 23:36         ` Jeff King
2019-03-25 19:19       ` Ævar Arnfjörð Bjarmason
2019-03-25 23:37         ` Jeff King
2019-03-26  7:53           ` [PATCH 0/3] tag: prevent recursive tags Denton Liu
2019-03-26  7:53             ` [PATCH 1/3] " Denton Liu
2019-03-26  8:51               ` Denton Liu
2019-03-26 10:10               ` Ævar Arnfjörð Bjarmason
2019-03-27  4:57               ` Elijah Newren
2019-03-27 10:27                 ` Ævar Arnfjörð Bjarmason
2019-03-28 19:02                   ` Robert Dailey
2019-03-26  7:53             ` [PATCH 2/3] t7004: ensure recursive tag behavior is working Denton Liu
2019-03-26 10:11               ` Ævar Arnfjörð Bjarmason
2019-03-26  7:53             ` [PATCH 3/3] git-tag.txt: document --allow-recursive-tag option Denton Liu
2019-03-26 10:16               ` Ævar Arnfjörð Bjarmason
2019-03-26 16:18             ` [PATCH 0/3] tag: prevent recursive tags Jeff King
2019-04-02  5:38             ` [PATCH v2 0/2] tag: prevent nested tags Denton Liu
2019-04-02  5:38               ` [PATCH v2 1/2] tag: fix formatting Denton Liu
2019-04-02  5:38               ` [PATCH v2 2/2] tag: prevent nested tags Denton Liu
2019-04-02 23:03                 ` [PATCH v2.5 " Denton Liu
2019-04-03  7:32                   ` Junio C Hamano
2019-04-03  8:49                     ` Junio C Hamano
2019-04-03 18:26                       ` Robert Dailey
2019-04-04  9:32                         ` Junio C Hamano
2019-04-04 13:47                           ` Robert Dailey
2019-04-04 21:50                             ` Junio C Hamano
2019-04-05  2:51                               ` Robert Dailey
2019-04-03 18:16                     ` Johannes Sixt
2019-04-03 21:33                     ` Denton Liu
2019-04-04  2:02                       ` Jeff King
2019-04-04  9:31                         ` Junio C Hamano
2019-04-04 12:27                           ` Jeff King
2019-04-04 21:54                             ` Junio C Hamano
2019-04-04 22:12                               ` Jeff King
2019-04-11 18:40                             ` Eckhard Maaß
2019-04-12  3:21                               ` Junio C Hamano
2019-04-05  0:36                           ` Elijah Newren
2019-04-05  5:29                             ` Junio C Hamano
2019-04-04 18:25               ` [PATCH v3 0/2] tag: advise on recursive tagging Denton Liu
2019-04-04 18:25               ` [PATCH v3 1/2] tag: fix formatting Denton Liu
2019-04-04 18:25               ` [PATCH v3 2/2] tag: advise on nested tags Denton Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHd499BTACjf91Ohi34ozFQE_NOn-LVf-35t7h4CTtDFoMCpWw@mail.gmail.com \
    --to=rcdailey.lists@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.