# git tag's history

4 messages from 2010-07-24 to 2010-07-26. Participants: Mahesh Vaidya, David Aguilar, Will Palmer, Nicolas Sebrecht.
Thread: https://gitlist.dev/t/24494

## Mahesh Vaidya, 2010-07-24 12:12

Subject: git tag's history
Message-ID: <AANLkTinCTcnr=tyC2+C4u5L0p_mXxTCMfSBm_JzqqMDW@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTinCTcnr%3DtyC2%2BC4u5L0p_mXxTCMfSBm_JzqqMDW%40mail.gmail.com

```
If git tag's history is preserved or I need to implement this in
pre-receive hook

Scenario
^^^^^^^^^^^^
I create a tag FOO -corresponding to a commit cdf123

FOO->cdf123 and I push this Tag to authoritative repository ; all fine.

Now my buddy creates overwrite my tag (git tag -f) and now this tag
looks at some other commit

FOO->123aff

He does a push tag FOO; assuming no restriction in pre-receive this
push will get applied and my earlier cdf123 is lost. Is there any way
to retrive Tag's history or in need to implement some scheme

Thx/ Mahesh

```

## David Aguilar, 2010-07-26 09:36

Subject: Re: git tag's history
Message-ID: <AANLkTikTqJVbohquiNmW0BvP0bXsVFyMw0H4qF2FbhiH@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTikTqJVbohquiNmW0BvP0bXsVFyMw0H4qF2FbhiH%40mail.gmail.com
In-Reply-To: <AANLkTinCTcnr=tyC2+C4u5L0p_mXxTCMfSBm_JzqqMDW@mail.gmail.com>

```
On Sat, Jul 24, 2010 at 5:12 AM, Mahesh Vaidya <forvaidya@gmail.com> wrote:
> If git tag's history is preserved or I need to implement this in
> pre-receive hook
>
> Scenario
> ^^^^^^^^^^^^
> I create a tag FOO -corresponding to a commit cdf123
>
> FOO->cdf123 and I push this Tag to authoritative repository ; all fine.
>
> Now my buddy creates overwrite my tag (git tag -f) and now this tag
> looks at some other commit
>
> FOO->123aff
>
> He does a push tag FOO; assuming no restriction in pre-receive this
> push will get applied and my earlier cdf123 is lost. Is there any way
> to retrive Tag's history or in need to implement some scheme
>
> Thx/ Mahesh


He won't be able to push the tag unless he forcibly deletes your tag first.

Tags do not have history.  This is a non-technical problem.  If s/he's
deleting your tags, it's a social problem.

-- 
    David

```

## Will Palmer, 2010-07-26 13:36

Subject: Re: git tag's history
Message-ID: <1280151367.8229.28.camel@wpalmer.simply-domain>
URL: https://gitlist.dev/e/1280151367.8229.28.camel%40wpalmer.simply-domain
In-Reply-To: <AANLkTikTqJVbohquiNmW0BvP0bXsVFyMw0H4qF2FbhiH@mail.gmail.com>

```
On Mon, 2010-07-26 at 02:36 -0700, David Aguilar wrote:
> He won't be able to push the tag unless he forcibly deletes your tag first.
> 
> Tags do not have history.  This is a non-technical problem.  If s/he's
> deleting your tags, it's a social problem.
> 

What about enabling the reflog on the shared bare repository?
Tags get changed. That's a fact. It's a necessity, no matter what the
theoretical model says. Sometimes there's a reason to replace a tag, and
when that happens there is sometimes a reason to hang on to the old
value. Pretending "it's a social issue" ignores reality, not the least
important aspect of which is "social issues happen. How do we avoid
losing information in a sane, scalable manner?"

Just an example of a tag which could stand to be updated, take a look
at: refs/tags/junio-gpg-pub  There's at least one thing in there which
is out of date.

```

## Nicolas Sebrecht, 2010-07-26 14:17

Subject: Re: git tag's history
Message-ID: <20100726141755.GA13721@vidovic>
URL: https://gitlist.dev/e/20100726141755.GA13721%40vidovic
In-Reply-To: <1280151367.8229.28.camel@wpalmer.simply-domain>

```
The 26/07/10, Will Palmer wrote:
> On Mon, 2010-07-26 at 02:36 -0700, David Aguilar wrote:
> > He won't be able to push the tag unless he forcibly deletes your tag first.
> > 
> > Tags do not have history.  This is a non-technical problem.  If s/he's
> > deleting your tags, it's a social problem.

True in the first place but I see nothing wrong to want to have
technical safeguards around social issues.

> What about enabling the reflog on the shared bare repository?
> Tags get changed. That's a fact. It's a necessity, no matter what the
> theoretical model says. Sometimes there's a reason to replace a tag, and
> when that happens there is sometimes a reason to hang on to the old
> value.

Sharing a central repository makes it exposed on such erasure. Git
provides other mechanisms to take more control. Your workflow may not be
what everybody want for themselves. You should look at the hooks system,
I think.

You might also be interested by gitolite, an external tool (I'm not sure
it could help on this particular issue, though).

>        Pretending "it's a social issue" ignores reality, not the least
> important aspect of which is "social issues happen. How do we avoid
> losing information in a sane, scalable manner?"

It shouldn't be lost. The bare repository can be seen as a gate to
publicize local work (or a backup copy sometimes). The original tag can
be restored by his creator from his local repository.

> Just an example of a tag which could stand to be updated, take a look
> at: refs/tags/junio-gpg-pub  There's at least one thing in there which
> is out of date.

Hard tags are designed to be immutable whatever happens after the
facts. This is why they exist.

Public tags shouldn't change as it would break other up-to-date
repositories.

-- 
Nicolas Sebrecht

```
