{"thread":{"id":"24494","subject":"git tag's history","startedAt":"2010-07-24T12:12:26Z","lastAt":"2010-07-26T14:17:55Z","messageCount":4,"participants":["Mahesh Vaidya","David Aguilar","Will Palmer","Nicolas Sebrecht"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"146161","messageId":"AANLkTinCTcnr=tyC2+C4u5L0p_mXxTCMfSBm_JzqqMDW@mail.gmail.com","threadId":"24494","inReplyTo":null,"subject":"git tag's history","fromName":"Mahesh Vaidya","fromEmail":"forvaidya@gmail.com","sentAt":"2010-07-24T12:12:26Z","receivedAt":"2010-07-24T12:12:26Z","isPatch":false,"sender":{"key":"forvaidya@gmail.com","avatar":null},"body":"If git tag's history is preserved or I need to implement this in\npre-receive hook\n\nScenario\n^^^^^^^^^^^^\nI create a tag FOO -corresponding to a commit cdf123\n\nFOO->cdf123 and I push this Tag to authoritative repository ; all fine.\n\nNow my buddy creates overwrite my tag (git tag -f) and now this tag\nlooks at some other commit\n\nFOO->123aff\n\nHe does a push tag FOO; assuming no restriction in pre-receive this\npush will get applied and my earlier cdf123 is lost. Is there any way\nto retrive Tag's history or in need to implement some scheme\n\nThx/ Mahesh\n"},{"id":"146359","messageId":"AANLkTikTqJVbohquiNmW0BvP0bXsVFyMw0H4qF2FbhiH@mail.gmail.com","threadId":"24494","inReplyTo":"AANLkTinCTcnr=tyC2+C4u5L0p_mXxTCMfSBm_JzqqMDW@mail.gmail.com","subject":"Re: git tag's history","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2010-07-26T09:36:13Z","receivedAt":"2010-07-26T09:36:13Z","isPatch":false,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Sat, Jul 24, 2010 at 5:12 AM, Mahesh Vaidya <forvaidya@gmail.com> wrote:\n> If git tag's history is preserved or I need to implement this in\n> pre-receive hook\n>\n> Scenario\n> ^^^^^^^^^^^^\n> I create a tag FOO -corresponding to a commit cdf123\n>\n> FOO->cdf123 and I push this Tag to authoritative repository ; all fine.\n>\n> Now my buddy creates overwrite my tag (git tag -f) and now this tag\n> looks at some other commit\n>\n> FOO->123aff\n>\n> He does a push tag FOO; assuming no restriction in pre-receive this\n> push will get applied and my earlier cdf123 is lost. Is there any way\n> to retrive Tag's history or in need to implement some scheme\n>\n> Thx/ Mahesh\n\n\nHe won't be able to push the tag unless he forcibly deletes your tag first.\n\nTags do not have history.  This is a non-technical problem.  If s/he's\ndeleting your tags, it's a social problem.\n\n-- \n    David\n"},{"id":"146372","messageId":"1280151367.8229.28.camel@wpalmer.simply-domain","threadId":"24494","inReplyTo":"AANLkTikTqJVbohquiNmW0BvP0bXsVFyMw0H4qF2FbhiH@mail.gmail.com","subject":"Re: git tag's history","fromName":"Will Palmer","fromEmail":"wmpalmer@gmail.com","sentAt":"2010-07-26T13:36:07Z","receivedAt":"2010-07-26T13:36:07Z","isPatch":false,"sender":{"key":"wmpalmer@gmail.com","avatar":"https://avatars.githubusercontent.com/u/357044?v=4"},"body":"On Mon, 2010-07-26 at 02:36 -0700, David Aguilar wrote:\n> He won't be able to push the tag unless he forcibly deletes your tag first.\n> \n> Tags do not have history.  This is a non-technical problem.  If s/he's\n> deleting your tags, it's a social problem.\n> \n\nWhat about enabling the reflog on the shared bare repository?\nTags get changed. That's a fact. It's a necessity, no matter what the\ntheoretical model says. Sometimes there's a reason to replace a tag, and\nwhen that happens there is sometimes a reason to hang on to the old\nvalue. Pretending \"it's a social issue\" ignores reality, not the least\nimportant aspect of which is \"social issues happen. How do we avoid\nlosing information in a sane, scalable manner?\"\n\nJust an example of a tag which could stand to be updated, take a look\nat: refs/tags/junio-gpg-pub  There's at least one thing in there which\nis out of date.\n"},{"id":"146377","messageId":"20100726141755.GA13721@vidovic","threadId":"24494","inReplyTo":"1280151367.8229.28.camel@wpalmer.simply-domain","subject":"Re: git tag's history","fromName":"Nicolas Sebrecht","fromEmail":"nicolas.s.dev@gmx.fr","sentAt":"2010-07-26T14:17:55Z","receivedAt":"2010-07-26T14:17:55Z","isPatch":false,"sender":{"key":"nicolas.s.dev@gmx.fr","avatar":null},"body":"The 26/07/10, Will Palmer wrote:\n> On Mon, 2010-07-26 at 02:36 -0700, David Aguilar wrote:\n> > He won't be able to push the tag unless he forcibly deletes your tag first.\n> > \n> > Tags do not have history.  This is a non-technical problem.  If s/he's\n> > deleting your tags, it's a social problem.\n\nTrue in the first place but I see nothing wrong to want to have\ntechnical safeguards around social issues.\n\n> What about enabling the reflog on the shared bare repository?\n> Tags get changed. That's a fact. It's a necessity, no matter what the\n> theoretical model says. Sometimes there's a reason to replace a tag, and\n> when that happens there is sometimes a reason to hang on to the old\n> value.\n\nSharing a central repository makes it exposed on such erasure. Git\nprovides other mechanisms to take more control. Your workflow may not be\nwhat everybody want for themselves. You should look at the hooks system,\nI think.\n\nYou might also be interested by gitolite, an external tool (I'm not sure\nit could help on this particular issue, though).\n\n>        Pretending \"it's a social issue\" ignores reality, not the least\n> important aspect of which is \"social issues happen. How do we avoid\n> losing information in a sane, scalable manner?\"\n\nIt shouldn't be lost. The bare repository can be seen as a gate to\npublicize local work (or a backup copy sometimes). The original tag can\nbe restored by his creator from his local repository.\n\n> Just an example of a tag which could stand to be updated, take a look\n> at: refs/tags/junio-gpg-pub  There's at least one thing in there which\n> is out of date.\n\nHard tags are designed to be immutable whatever happens after the\nfacts. This is why they exist.\n\nPublic tags shouldn't change as it would break other up-to-date\nrepositories.\n\n-- \nNicolas Sebrecht\n"}]}