threads / discuss / 24494

git tag's history

Subject: git tag's history

## tl;dr

4 messages between Jul 24, 2010 and Jul 26, 2010.

replies: 3people: 4as markdown or json

Mahesh Vaidya· Jul 24, 2010, 12:12 UTC · lore

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· Jul 26, 2010, 09:36 UTC · re: Mahesh Vaidya · lore

Re: git tag's history

On Sat, Jul 24, 2010 at 5:12 AM, Mahesh Vaidya <forvaidya@gmail.com> wrote:
Show 19 quoted lines
> 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· Jul 26, 2010, 13:36 UTC · re: David Aguilar · lore

Re: git tag's history

On Mon, 2010-07-26 at 02:36 -0700, David Aguilar wrote:
Show 5 quoted lines
> 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· Jul 26, 2010, 14:17 UTC · re: Will Palmer · lore

Re: git tag's history

The 26/07/10, Will Palmer wrote:
Show 5 quoted lines
> 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.

Show 5 quoted lines
> 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

← back to recent threads