{"thread":{"id":"3092","subject":"[QUESTION] What is a tag for?","startedAt":"2006-01-17T22:52:24Z","lastAt":"2006-01-25T09:02:12Z","messageCount":12,"participants":["Alex Bennee","Petr Baudis","Junio C Hamano","Linus Torvalds","Andreas Ericsson"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"14790","messageId":"1137538344.9104.34.camel@malory","threadId":"3092","inReplyTo":null,"subject":"[QUESTION] What is a tag for?","fromName":"Alex Bennee","fromEmail":"kernel-hacker@bennee.com","sentAt":"2006-01-17T22:52:24Z","receivedAt":"2006-01-17T22:52:24Z","isPatch":false,"sender":{"key":"kernel-hacker@bennee.com","avatar":null},"body":"Hi,\n\nSo I want to track Linus's 2.6 git tree as well as do a little small\ntime hacking. I'm not brave enough to sit on the very bleeding edge and\nbuild what ever happens to be at the \"HEAD\" of the tree. However when a\nkernel releases I'd like to build *that* kernel.\n\nI keep thinking of tags like labels in the old convetional SCM case. Is\nthis correct? I can see once I've done my update (fetch/cogito what\never) that these tags apear in my local tree:\n\n22:42 alex@malory [linux-2.6] >cat .git/refs/tags/v2.6.16-rc1\nf3bcf72eb85aba88a7bd0a6116dd0b5418590dbe\n\nSo what do I do with them now? Are they only for branch points? Is the\nonly way to know I'm building 2.6.16-rc1 to branch from it as described\nin git-branch, even if I'm not planning on doing any development?\n\nIs this part of the concept that branches are cheap and you should feel\nfree to create and throw them away at will?\n\nI look forward to your elucidation and the ah! moment that finally gets\nmy head around git ;-)\n\nCheers,\n\n\n--\nAlex, homepage: http://www.bennee.com/~alex/\nZoe: \"So.. Trap?\" Mal: \"Trap.\" Zoe: \"We goin' in?\" Mal: \"Ain't nothin'\nbut a few hours out.\" Wash: \"But, remember the part where it's a trap?\"\n"},{"id":"14791","messageId":"20060117230537.GK28365@pasky.or.cz","threadId":"3092","inReplyTo":"1137538344.9104.34.camel@malory","subject":"Re: [QUESTION] What is a tag for?","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-01-17T23:05:37Z","receivedAt":"2006-01-17T23:05:37Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"  Hi,\n\nDear diary, on Tue, Jan 17, 2006 at 11:52:24PM CET, I got a letter\nwhere Alex Bennee <kernel-hacker@bennee.com> said that...\n> So I want to track Linus's 2.6 git tree as well as do a little small\n> time hacking. I'm not brave enough to sit on the very bleeding edge and\n> build what ever happens to be at the \"HEAD\" of the tree. However when a\n> kernel releases I'd like to build *that* kernel.\n> \n> I keep thinking of tags like labels in the old convetional SCM case. Is\n> this correct? I can see once I've done my update (fetch/cogito what\n> ever) that these tags apear in my local tree:\n> \n> 22:42 alex@malory [linux-2.6] >cat .git/refs/tags/v2.6.16-rc1\n> f3bcf72eb85aba88a7bd0a6116dd0b5418590dbe\n> \n> So what do I do with them now? Are they only for branch points? Is the\n> only way to know I'm building 2.6.16-rc1 to branch from it as described\n> in git-branch, even if I'm not planning on doing any development?\n\n  the simplest thing to do in Cogito if you just want to follow tags\naround is to cg-fetch periodically (that will get the changes to your\nlocal database, but will not check them out), and cg-seek around to\nwhatever tag you want:\n\n\t$ cg-fetch\n\t$ cg-seek v2.6.16-rc1\n\t$ cg-fetch\n\t... no new tag ...\n\t$ cg-fetch\n\t... still no new tag ...\n\t$ cg-fetch\n\t... Linus, are you sleeping? ...\n\t$ cg-fetch\n\t$ cg-seek v2.6.16-rc2\n\t...\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nOf the 3 great composers Mozart tells us what it's like to be human,\nBeethoven tells us what it's like to be Beethoven and Bach tells us\nwhat it's like to be the universe.  -- Douglas Adams\n"},{"id":"14793","messageId":"7v1wz648jc.fsf@assigned-by-dhcp.cox.net","threadId":"3092","inReplyTo":"1137538344.9104.34.camel@malory","subject":"Re: [QUESTION] What is a tag for?","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-18T01:41:27Z","receivedAt":"2006-01-18T01:41:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Alex Bennee <kernel-hacker@bennee.com> writes:\n\n> ... I'm not brave enough to sit on the very bleeding edge and\n> build what ever happens to be at the \"HEAD\" of the tree. However when a\n> kernel releases I'd like to build *that* kernel.\n\nThen maybe its time to change your e-mail address from\nkernel-hacker to kernel-builder? ;-) ;-) ;-)\n\n> I keep thinking of tags like labels in the old convetional SCM case. Is\n> this correct?\n\nCorrect.\n\nTags are just labels.  So you can think of them as a shorthand\nthat lets you easily communicate a set of selected well-known\nversions with others (either people, or git tools).  Instead of\nsaying 2664b25051f7ab96b22b199aa2f..., you can say v2.6.16-rc1.\n\nAll of the things I demonstrate below, you can substitute v2.6.X\nwith their commit object names and things work the same way.  It\nis more convenient and human friendly to use tags.\n\nExcept one thing:  signed tags can be verified, if you have GPG\npublic key of the signer (in this case Linus), with \"git\nverify-tag\".\n\n<offtopic>\nDoes anybody know where to obtain the public key to verify\nv2.6.16-rc1 tag?\n</offtopic>\n\n> So what do I do with them now? Are they only for branch points?\n\nThat is one of the things often done.  To build on top of\nv2.6.16-rc1:\n\n\t$ git checkout -b myhack v2.6.16-rc1\n\t$ hack hack hack\n        $ git commit -s -m 'Add support for frotz videocard.\n\n\tThis adds frotz videocard support.  Blah Blah Blah...'\n\nYou could also use them to see what happened during a given\ntimeframe.  For example:\n\n\t$ git log v2.6.14..v2.6.15 | git shortlog\n\nwould list you all the changes between these two releases, for\nexample. \n\nIf you know something used to work at a given version, say\nv2.6.15, and now it does not work, you can use it as good/bad\ninput for the bisection bug hunting:\n\n\t$ git bisect good v2.6.15 && git bisect bad master\n\n> Is the\n> only way to know I'm building 2.6.16-rc1 to branch from it as described\n> in git-branch, even if I'm not planning on doing any development?\n\nI do not quite understand.  Immediately after the above example\ncheckout, before or after doing the hackhack and commit, git\nbranch would probably say:\n\n\t$ git branch\n          origin\n\t  master\n        * myhack\n\nImmediately after the example checkout, \"git describe myhack\"\nwould answer v2.6.16-rc1.  OTOH, after the hackhack and commit,\nit would answer v2.6.16-rc1-gXXXXXXXX where XXXX part is an\nabbreviated commit object name of the commit you have at the tip\nof myhack branch.\n\nTo see what you did in the branch, the tag, if you remember\nwhere you forked from, can be used this way: \n\n\t$ git whatchanged -p v2.6.16-rc1..myhack\n\nHowever, the above is equivalent to saying this:\n\n\t$ git whatchanged -p master..myhack\n\nSo in that sense tag is not that useful for the purpose of\ngetting list of commits (or, more precicely, naming a\ndevelopment track).\n\nIt is useful to name a specific version:\n\n\t$ git diff v2.6.16-rc1 myhack\n\ncompares two versions; it is not equivalent to \"git diff master myhack\".\n\n> Is this part of the concept that branches are cheap and you should feel\n> free to create and throw them away at will?\n\nThat depends on what you exactly mean by \"this\", but all of the\nabove are quite cheap.  If the \"myhack\" practice turned out to\nbe useless, you can just:\n\n\t$ git checkout master\n        $ git branch -D myhack\n\nto come back to the tip of the mainline and delete your side branch.\n"},{"id":"14797","messageId":"Pine.LNX.4.64.0601171949430.3240@g5.osdl.org","threadId":"3092","inReplyTo":"7v1wz648jc.fsf@assigned-by-dhcp.cox.net","subject":"Re: [QUESTION] What is a tag for?","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2006-01-18T04:00:21Z","receivedAt":"2006-01-18T04:00:21Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Tue, 17 Jan 2006, Junio C Hamano wrote:\n> \n> <offtopic>\n> Does anybody know where to obtain the public key to verify\n> v2.6.16-rc1 tag?\n> </offtopic>\n\nDo a google search for \"torvalds\" and \"tag signing key\", and you'll find \nthe thread that has the original key in it.\n\nIn fact, if you search for \"torvalds\" \"tag\" and \"BEGIN PGP PUBLIC KEY \nBLOCK\", it will be the first hit.\n\nAnyway, here it is again. Linus' tag signing key. I could do what you do, \nbut I feel that it's kind of pointless to put the public key with the \nproject, since if you don't trust the project, you shouldn't trust the key \nit contains as being from me.\n\nYou fundamentally want to have some _other_ reason to trust the key, like \nthe fact that you can find it independently with google ;)\n\n\t\tLinus\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.1 (GNU/Linux)\n\nmQGiBEJqZ4sRBADKttqQOCAxRzz5qGmo5QnSR5GTkSlPTm4lCuaVUon0qQPNrasr\ncSBAOJ1MlXjhbRPrN3pAhI+taLgrWQ231zUNHxCTmWJZV3Yzxr8xJQGlfHlVOxXB\nLI42tAfCjHOF7z8pPj6AGhtE2+fzq1U3mOlA/fUG4uYDOwIoPK+qgbM6SwCgulqs\nDGlQKFFtFgW8HVnDftFmyZMD+wc0E9jRa9HJ3b1U3vY1jrxpoVw5QeeIZdSRnRFy\nsknOHca5mlJvTidu1cs7xCuvpufw1VIVvgf4tPwXcTDEKthYEhoty+DFOqZ9R7pg\nEMhjYbq+Q8yLT3OWQtUKV4B10FRYIWidnJ8y2CjLduTmB+cyj976oxEY/llLBbQM\nyuDrBADDLw/3KZL5D75icA0l/uebQ6/73j8jcRoVu0gTqAdQBYL6Zv7Y0G7xHUCo\nEqgo+p2LXAeU9IoeA5/h8SNVDw4fYoqo6VQTkr+ydegHkjwlbrhOL/gxzlY1Pde1\nTBi6+QCUssk0FCPMALt7M+OgFpSKx7pP2xSsDsMvvNNAmLl0JrQ0TGludXMgVG9y\ndmFsZHMgKHRhZyBzaWduaW5nIGtleSkgPHRvcnZhbGRzQG9zZGwub3JnPoheBBMR\nAgAeBQJCameLAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEBd2LEZ24hy7I84A\nnROHRYes4RU8btdleR0TgwJG7jMvAKCF2CingjxaC4sTL7BkFfNacTkBYLkBDQRC\nameMEAQAlJiw0IBltu5ihEXE4mFYiWHuVAoeufVJ9fONv67y6fu3efJ10PJ7AQdG\nUfez+8yxkrahyIVC77NuQLDrRfvgmrJ8sbP8xb6QEbY1bnwLeuciTolGjL+kYi17\nJ74iG2cQDyimnLWJm5lNqeUOz3nTW429SyLCRhXpR1lUjijiVi8AAwcD/1f4VEql\nu9HHTA4S+1aoOQV5guZCr6JbYdWkAZeeFRpFSXfCae6uO8DhpD7o/8kiK3O8qP1O\nyjQF0bG26iLCm8MdJCO0WQ2xsVlwrrvnNPpgRgbirOgoxHM4ESq/YV+MqXo41Hm0\nilHRM7OIbmm7uvFSlUJmUasuJRsrhibilbvNiEkEGBECAAkFAkJqZ4wCGwwACgkQ\nF3YsRnbiHLsolQCfRVImDkgijhPGmwyI7T19bWltXwsAniMi9gakkN+9DT8E5kli\ne8uTEk8f\n=PRrZ\n-----END PGP PUBLIC KEY BLOCK-----\n"},{"id":"14798","messageId":"7vu0c2ywq1.fsf@assigned-by-dhcp.cox.net","threadId":"3092","inReplyTo":"Pine.LNX.4.64.0601171949430.3240@g5.osdl.org","subject":"Re: [QUESTION] What is a tag for?","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-18T04:40:54Z","receivedAt":"2006-01-18T04:40:54Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Linus Torvalds <torvalds@osdl.org> writes:\n\n> You fundamentally want to have some _other_ reason to trust the key, like \n> the fact that you can find it independently with google ;)\n>\n> \t\tLinus\n\nTrue.  Here is mine, for google.\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.2 (GNU/Linux)\n\nmQGiBEAXWL4RBAC1hDSYXpgyl8Dyyd+fcVH6wKiCTKsCv1AkdTQP0M+N/+2JbS1n\nokt+7UBbI31s2ZtXRmXjru1Kzq6Z/HLLsZCF1fH8iLXMe1YtVN81Rn9jpqPvs+l/\nzvbVoVE/qwx0eHj/nl4jI9D8RYp8x+Ixor2MzNh/MKs02UtT8egPZVU3bwCgn7vF\nD+xpLwmUnWRaAqFhlRnjGKsD+wSAspa3k70LqatuasE8urLTUnDw+AYLfSI4QYXA\nS/uEDcV3VmeLpcV51YgsVqCDJk5jLe3EYENM6cFA5kGRZEPXqtwihXqXZuKD5m7j\ng/3cbrKELEZuYiGrRzgJwW43RWc1FpA2TwpxI8k+XlI5u1p2AXo8vP5OoZ28ePZX\ntXHdBACKlYxpeqspxgfZbFBlu1d0yPJqZkIaHzrZv7UOQPzvnFzTZSBk3ctx7ev8\nAqYTUDZCm68yql4olTOvqlS/e6iQEU131NbEHvnq3BcXaKmr3L/rpo2b+LUyNKvu\nvrBrNIznnPobWMZQ+nAzcKg5QrJ7IMr4RbYBMrULkYtu62HoqLQfSnVuaW8gQyBI\nYW1hbm8gPGp1bmtpb0Bjb3gubmV0PoheBBMRAgAeBQJAF1i+AhsDBgsJCAcDAgMV\nAgMDFgIBAh4BAheAAAoJEMDG2aTzEZuau1EAoITfGTTGbFYnCy/QFpwU1n9pehoo\nAJ9giNg0AMiJ9F5KcZNfweDeRVZ5WNHFPMU6ARAAAQEAAAAAAAAAAAAAAAD/2P/g\nABBKRklGAAEBAQBIAEgAAP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQd\nGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsM\nGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjIyMv/AABEIADAAMAMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAA\nAAAEBQMGBwj/xAA0EAABAwIGAAQEBQMFAAAAAAABAgMEBREABhITITEHFCJBMlFh\ngQgWQlKRFRgjVZKh0eH/xAAaAQACAwEBAAAAAAAAAAAAAAACAwEEBQAG/8QAJxEA\nAgEDAwQABwAAAAAAAAAAAQIDAAQREzFBBRIhUSJSkaGxwfD/2gAMAwEAAhEDEQA/\n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\n3ZMYGVhS3LY9Pa5ynxZLOA==\n=avEp\n-----END PGP PUBLIC KEY BLOCK-----\n"},{"id":"14800","messageId":"20060118095821.GL28365@pasky.or.cz","threadId":"3092","inReplyTo":"7vu0c2ywq1.fsf@assigned-by-dhcp.cox.net","subject":"Re: [QUESTION] What is a tag for?","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-01-18T09:58:21Z","receivedAt":"2006-01-18T09:58:21Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Jan 18, 2006 at 05:40:54AM CET, I got a letter\nwhere Junio C Hamano <junkio@cox.net> said that...\n> Linus Torvalds <torvalds@osdl.org> writes:\n> \n> > You fundamentally want to have some _other_ reason to trust the key, like \n> > the fact that you can find it independently with google ;)\n> >\n> > \t\tLinus\n> \n> True.  Here is mine, for google.\n\nAnd here is my SuSE public key (which I use for signing Cogito tags)\nfor Google to mine. (And for a record, my personal PGP key which\nI normally use for non-job related stuff is different and is available\nat my homepage; I've also signed this mail with it, FWIW.)\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.2 (GNU/Linux)\n\nmQGiBELIc0YRBADDsuMs8bWaEB85db2PLgGan0vXLp2ztfhuG0iSvFqRxhqwLW4F\nRJuFp8+53dHzgSVSw7QETX0HeQCycg+dflKirhfQwJGmcm2Gkn9L3BtAhz855rug\nWLct4RL/j3eusIR6wyOfMaNsHglVXzQT5h9kn6p0h5pP2E+v177qlnhqKwCgmYbq\neF5cEBUV2P/BMmXzVqBelGkD/jjAnsE38s+schg4xYZLTF1GLwnf7na3ddMLd2Pj\no2V0KSSMZMaDJ7dHgCl9dTwiE2IDJxnqMbHuaE5QuUrzbpi7X47IkK8wHIbSUHOZ\nhyQBLiIJ2PXOSxwn6J4zIn2oysKwOsxbBE4RRJ90f/jpHw3q0P2YNtIgiQeyZZxi\nMbltBACv56gQKBNAebms4AXx/8pFHc+YeYaK1STMpRnR6pNKkREz/nfa0IGkf59n\nF+gARxEqjOPaCrNLEjwymAEmPJC/F46sgfOR5djihOs+GX4E4msqDE1Ht+jIc6xS\n2M0tXLEZ5RAogJ53XyDsQnFBW1JyM9FKYiojoiRzlJB8FWuiPLQnUGV0ciBCYXVk\naXMgKFN1U0UgTGFicykgPHBhc2t5QHN1c2UuY3o+iF4EExECAB4FAkLIc0YCGwMG\nCwkIBwMCAxUCAwMWAgECHgECF4AACgkQoqZU+9z5OURXUQCdHeDMjOoWkRZ47wJ4\n7BkVu+siXC0Anjv9n+q15/h1My9e4NAr6X8GS217uQINBELIc0oQCAC1BRdneY8m\nGoayc37lc0/aSlypmpwNTu8CRFoxl/JTXoqW31czfVFes1tlSJaLRidBFF9gW/An\nKOIMhbOtMRZ4RGxorhrMYDjLQzYVkb1kJspMkG0BdCz3Cy3WKz/f4uvgImqOVx3E\nuP/6DwsidUite4m0xPPXMRip4bRuoBatI3K/6UyUkxxDJ44Mnd7CqpF4+4YXgZTy\nUuXRLo1P9/KcbcW+gngUBCQOjOYNLxup1rrRtcmP1qc2gmaNxUop6/zsBwuQPPVL\n7iTgw00q9aVLSvFEXpjDl5qy+oau+kCeuza6liApOc5H18b6mXzEczn7vDF9XZwB\n/diPXrZsiYFfAAMHCACZD9PrSCSmYdnfgKX+qElOmOXHi59CYj2B/o8Qn0Yh0jjK\n63aBdVviqUGfunkC+dZgcMYvS5anfiGzeOFa90/z9O2Mr+WdCR/JG3DHXpKhFSKj\nKo6iQ6N6qnDcN1tskjfyv0cW+lEyCZjmgNqGBM7jGYVZ7JlOKtM/Jd9nzEo7HKjr\nm+MihsduyXzqkEqn6H8k1ZxvcxgnQwBaZUBMSbBbYNTewBR7GkOoiGwPUFUaIBjP\nCEyWjCEZmHRpGnKKxBLsxf7aUkr1JlEPFjDmx50YzxBAJ0oX1Y/ftePItPq9SzQM\nj5GItjrP0KKNdm6R7SgVyiq5jLDVHeKh3zMjRspliEkEGBECAAkFAkLIc0oCGwwA\nCgkQoqZU+9z5OUS99gCfV8ufkdnRSxVlv9Ej6nyUP1JBNo0An1/oDuJn8fcbfBFj\nRDJA/3ar4p+f\n=q7rT\n-----END PGP PUBLIC KEY BLOCK-----\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nOf the 3 great composers Mozart tells us what it's like to be human,\nBeethoven tells us what it's like to be Beethoven and Bach tells us\nwhat it's like to be the universe.  -- Douglas Adams\n"},{"id":"14801","messageId":"20060118100701.GM28365@pasky.or.cz","threadId":"3092","inReplyTo":"7v1wz648jc.fsf@assigned-by-dhcp.cox.net","subject":"Re: [QUESTION] What is a tag for?","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2006-01-18T10:07:01Z","receivedAt":"2006-01-18T10:07:01Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Wed, Jan 18, 2006 at 02:41:27AM CET, I got a letter\nwhere Junio C Hamano <junkio@cox.net> said that...\n> Alex Bennee <kernel-hacker@bennee.com> writes:\n> > Is the\n> > only way to know I'm building 2.6.16-rc1 to branch from it as described\n> > in git-branch, even if I'm not planning on doing any development?\n> \n> I do not quite understand.  Immediately after the above example\n> checkout, before or after doing the hackhack and commit, git\n> branch would probably say:\n> \n> \t$ git branch\n>           origin\n> \t  master\n>         * myhack\n\nWell if I understand it, at this point he would just periodically fetch\nand get the tags, and when a new release appears, he would merge it to\nmyhack, and so on. Which is probably the only way if you don't have\ncg-seek (I thought git checkout could do it, but it doesn't seem to be\nthe case), but I can see no advantage of doing it if you can just\ncg-seek (unless, after all, you do want to do some development). But\njust in case, with Cogito that would be:\n\n\t$ cg-switch -r v2.6.16-rc1 myhack\n\t# You need Cogito-0.17.GIT for this. It is equivalent to git\n\t# branch, I think.\n\t$ cg-fetch\n\t$ cg-fetch\n\t$ cg-fetch\n\t$ cg-merge v2.6.16-rc2\n\t$ cg-fetch\n\t$ cg-merge v2.6.16\n\t...\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nOf the 3 great composers Mozart tells us what it's like to be human,\nBeethoven tells us what it's like to be Beethoven and Bach tells us\nwhat it's like to be the universe.  -- Douglas Adams\n"},{"id":"14802","messageId":"43CE19F2.6000709@op5.se","threadId":"3092","inReplyTo":"1137538344.9104.34.camel@malory","subject":"Re: [QUESTION] What is a tag for?","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2006-01-18T10:35:30Z","receivedAt":"2006-01-18T10:35:30Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Alex Bennee wrote:\n> Hi,\n> \n> So I want to track Linus's 2.6 git tree as well as do a little small\n> time hacking. I'm not brave enough to sit on the very bleeding edge and\n> build what ever happens to be at the \"HEAD\" of the tree. However when a\n> kernel releases I'd like to build *that* kernel.\n> \n> I keep thinking of tags like labels in the old convetional SCM case. Is\n> this correct? I can see once I've done my update (fetch/cogito what\n> ever) that these tags apear in my local tree:\n> \n\nI'm not sure if you got the answer you wanted from Junio or Petr, so I \nthought I'd add my own explanation to this as well. If nothing else it \nmight be useful for someone greping through the archives.\n\nThere are three types of tags: simple, annotated and signed+annotated. \nAll tags work just as a branch head, except that you can't do 'git \ncheckout' on it (i.e. it's a pointer to a particular commit, but lives \nin $GIT_DIR/refs/tags instead of  $GIT_DIR/refs/heads).\n\nSimple, or unannotated, tags are useful for creating anchor points so \nthat you can jump to a particular state of development that's useful for \nyou as a developer to know about (I for one think sha-hashes are a tad \nhard to remember). You could just as easily create a branch for doing \nthis, but that's not always practical. F.e. when you're resetting or \nrebasing the current branch or doing some other of gits more voodoo-ish \nthings. If you do\n\n\t$ git cat-file -t <tagname>\n\non a simple tag it'll tell you it's a \"commit\" object, because that's \nthe type of the object it points to in the object database.\n\nIf you do the same on an annotated tag, whether it's signed or not, \"git \ncat-file -t <tagname>\" will tell you it's a 'tag' object.\n\nA tag object has a reference to a commit-object and some additional data \ninside it. Try\n\n\t$ git cat-file tag v1.0.0\n\nin the current git-repo and you'll see the following output\n----8<---8<---8<----\nobject c2f3bf071ee90b01f2d629921bb04c4f798f02fa\ntype commit\ntag v1.0.0\ntagger Junio C Hamano <junkio@cox.net> 1135152060 -0800\n\nGIT 1.0.0\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.2 (GNU/Linux)\n\niD8DBQBDqOh7wMbZpPMRm5oRAg+OAJ90pNi/fq5rguVou1PSxx95PYCVeACfbnZM\nnN/PlwOWKA3rW8EPmWO4BzE=\n=TCRg\n-----END PGP SIGNATURE-----\n----8<----8<----8<----\n\n\n'object' at the first line is the commit the tag points to. The rest \nshould be fairly self-evident.\n\nAfter the empty line there follows a message that the tagger can enter \nwhen typing the tag. This can be fairly useful if you wish to make it \nso. I use it to write a gisted changelog, listing new features and fixed \nbugs in a few words. All annotated tags that gets pushed to our shared \nrepos are automatically, through the 'update' hook, sent by email to our \nsales and marketing people. I like that, since I only have to use one \ntool for hacking, reporting, logging history and everything else that's \nreal developer work. It also means I never forget sending feature \nupdates to the suits, so they pester me less and life is a bit sweeter.\n\nA signed annotated tag requires that you have a valid gpg key. The tag \nshown above is signed using gpg (the only way of signing supported, I \nthink).\n\nSo, in essence;\n* A simple, or unannotated tag just points to a commit object and has no \nmessage attached to it.\n* An annotated tag points to a tag object and has a message of arbitrary \nlength attached to it. The tag object points to a commit object.\n* Only annotated tags can be signed.\n\n\nI'd recommend not allowing un-annotated tags in your shared repo. I sent \na patch for the default update-hook sometime ago that disallows this. \nJunio seemed happy about it so I don't understand why it hasn't been \npushed to the master branch yet.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"14837","messageId":"7vfynlwg8n.fsf@assigned-by-dhcp.cox.net","threadId":"3092","inReplyTo":"43CE19F2.6000709@op5.se","subject":"Re: [QUESTION] What is a tag for?","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-18T18:19:52Z","receivedAt":"2006-01-18T18:19:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Andreas Ericsson <ae@op5.se> writes:\n\n> I'd recommend not allowing un-annotated tags in your shared repo. I\n> sent a patch for the default update-hook sometime ago that disallows\n> this. Junio seemed happy about it so I don't understand why it hasn't\n> been pushed to the master branch yet.\n\nMost likely lost in the noise.  I probably have it in my mailbox\nbut not applied in any of my private branches in my repository.\n"},{"id":"14840","messageId":"43CE8DFB.9070004@op5.se","threadId":"3092","inReplyTo":"7vfynlwg8n.fsf@assigned-by-dhcp.cox.net","subject":"Re: [QUESTION] What is a tag for?","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2006-01-18T18:50:35Z","receivedAt":"2006-01-18T18:50:35Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Junio C Hamano wrote:\n> Andreas Ericsson <ae@op5.se> writes:\n> \n> \n>>I'd recommend not allowing un-annotated tags in your shared repo. I\n>>sent a patch for the default update-hook sometime ago that disallows\n>>this. Junio seemed happy about it so I don't understand why it hasn't\n>>been pushed to the master branch yet.\n> \n> \n> Most likely lost in the noise.  I probably have it in my mailbox\n> but not applied in any of my private branches in my repository.\n> \n\nI'll apply (and test) Linus suggestions of new refs and re-send it when \nI'm done watching King-Kong and stuffing my face with popcorn.\n\n-\nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"15097","messageId":"7vbqy13vq9.fsf@assigned-by-dhcp.cox.net","threadId":"3092","inReplyTo":"43CE8DFB.9070004@op5.se","subject":"Re: [QUESTION] What is a tag for?","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-25T02:08:30Z","receivedAt":"2006-01-25T02:08:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Andreas Ericsson <ae@op5.se> writes:\n\n> I'll apply (and test) Linus suggestions of new refs and re-send it\n> when I'm done watching King-Kong and stuffing my face with popcorn.\n\nIt appears you have not finished watching the movie yet, so I\ntook the liberty of adding this on top of your patch myself\n;-).\n"},{"id":"15109","messageId":"43D73E94.3020904@op5.se","threadId":"3092","inReplyTo":"7vbqy13vq9.fsf@assigned-by-dhcp.cox.net","subject":"Re: [QUESTION] What is a tag for?","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2006-01-25T09:02:12Z","receivedAt":"2006-01-25T09:02:12Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Junio C Hamano wrote:\n> Andreas Ericsson <ae@op5.se> writes:\n> \n> \n>>I'll apply (and test) Linus suggestions of new refs and re-send it\n>>when I'm done watching King-Kong and stuffing my face with popcorn.\n> \n> \n> It appears you have not finished watching the movie yet, so I\n> took the liberty of adding this on top of your patch myself\n> ;-).\n> \n\nSorry about that. I started adding stuff to it to disallow creating \nbranches that have no unique commits, and then thought of some other fun \nstuff that's a bit specific to the place I work so I never got around to it.\n\nSomehow the phb's never grow tired of coming up with new ways to waste \nmy time just when I've found a way to save some, forcing me to find a \nway to find some more. Anyways, if anybody wants an update-hook to \nupdate a project-management tool with worked time, gimme a holler. It's \nquite neat but completely flawed in a good way. :)\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"}]}