{"thread":{"id":"14918","subject":"Two-step tag fetching","startedAt":"2008-08-10T15:19:42Z","lastAt":"2008-08-11T02:43:41Z","messageCount":3,"participants":["Jan Engelhardt","Shawn O. Pearce"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"86676","messageId":"alpine.LNX.1.10.0808101115290.1727@fbirervta.pbzchgretzou.qr","threadId":"14918","inReplyTo":null,"subject":"Two-step tag fetching","fromName":"Jan Engelhardt","fromEmail":"jengelh@medozas.de","sentAt":"2008-08-10T15:19:42Z","receivedAt":"2008-08-10T15:19:42Z","isPatch":false,"sender":{"key":"jengelh@medozas.de","avatar":null},"body":"Hi,\n\n\nI have a somewhat older development tree at git://dev.medozas.de/linux \n(about 2.6.26-rc6), and without any tags. Now, adding in Linus's \nrepository makes it gather all the new stuff, and all the missing tags:\n\n$ git remote add linus \ngit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n$ git fetch linus\nremote: Counting objects: 85029, done.\nremote: Compressing objects: 100% (14727/14727), done.\nremote: Total 74992 (delta 61774), reused 72751 (delta 59953)\nReceiving objects: 100% (74992/74992), 23.08 MiB | 1375 KiB/s, done.\nResolving deltas: 100% (61774/61774), completed with 6853 local objects.\nFrom git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n * [new branch]      master     -> linus/master\n * [new tag]         v2.6.12    -> v2.6.12\n * [new tag]         v2.6.12-rc2 -> v2.6.12-rc2\n * [new tag]         v2.6.12-rc3 -> v2.6.12-rc3\n * [new tag]         v2.6.12-rc4 -> v2.6.12-rc4\n[... lots of new tags ...]\n * [new tag]         v2.6.25    -> v2.6.25\n * [new tag]         v2.6.25-rc1 -> v2.6.25-rc1\n * [new tag]         v2.6.25-rc2 -> v2.6.25-rc2\n * [new tag]         v2.6.25-rc3 -> v2.6.25-rc3\n * [new tag]         v2.6.25-rc4 -> v2.6.25-rc4\n * [new tag]         v2.6.25-rc5 -> v2.6.25-rc5\n * [new tag]         v2.6.25-rc6 -> v2.6.25-rc6\n * [new tag]         v2.6.25-rc7 -> v2.6.25-rc7\n * [new tag]         v2.6.25-rc8 -> v2.6.25-rc8\n * [new tag]         v2.6.25-rc9 -> v2.6.25-rc9\n * [new tag]         v2.6.26-rc1 -> v2.6.26-rc1\n * [new tag]         v2.6.26-rc2 -> v2.6.26-rc2\n * [new tag]         v2.6.26-rc3 -> v2.6.26-rc3\n * [new tag]         v2.6.26-rc4 -> v2.6.26-rc4\n * [new tag]         v2.6.26-rc5 -> v2.6.26-rc5\n * [new tag]         v2.6.26-rc6 -> v2.6.26-rc6\n * [new tag]         v2.6.26-rc7 -> v2.6.26-rc7\n * [new tag]         v2.6.26-rc8 -> v2.6.26-rc8\nFrom git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n * [new tag]         v2.6.26    -> v2.6.26\n * [new tag]         v2.6.26-rc9 -> v2.6.26-rc9\n * [new tag]         v2.6.27-rc1 -> v2.6.27-rc1\n * [new tag]         v2.6.27-rc2 -> v2.6.27-rc2\n\n\nWhat interests me here is why there are two \"From\" lines.\n\n\n\nthanks,\nJan\n"},{"id":"86679","messageId":"alpine.LNX.1.10.0808101124370.1727@fbirervta.pbzchgretzou.qr","threadId":"14918","inReplyTo":"alpine.LNX.1.10.0808101115290.1727@fbirervta.pbzchgretzou.qr","subject":"Re: Two-step tag fetching","fromName":"Jan Engelhardt","fromEmail":"jengelh@medozas.de","sentAt":"2008-08-10T15:27:20Z","receivedAt":"2008-08-10T15:27:20Z","isPatch":false,"sender":{"key":"jengelh@medozas.de","avatar":null},"body":"\nOn Sunday 2008-08-10 11:19, Jan Engelhardt wrote:\n>\n>\n>I have a somewhat older development tree at git://dev.medozas.de/linux \n>(about 2.6.26-rc6), and without any tags. Now, adding in Linus's \n>repository makes it gather all the new stuff, and all the missing tags:\n>[...]\n>What interests me here is why there are two \"From\" lines.\n\nI just noticed the same with stable-2.6.19.y.git (and all others), like\n\n>From git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.19.y\n * [new branch]      master     -> stable19/master\n * [new tag]         v2.6.19.7  -> v2.6.19.7\nFrom git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.19.y\n * [new tag]         v2.6.19.1  -> v2.6.19.1\n * [new tag]         v2.6.19.2  -> v2.6.19.2\n * [new tag]         v2.6.19.3  -> v2.6.19.3\n * [new tag]         v2.6.19.4  -> v2.6.19.4\n * [new tag]         v2.6.19.5  -> v2.6.19.5\n * [new tag]         v2.6.19.6  -> v2.6.19.6\n\nAnd my suspicion is that v2.6.19.1--v2.6.19.6 have been repacked into \npacked-refs, and v2.6.19.7 has been added later and is a loose tag (as \nis the master branch). So the packed-refs (with less recent history) are \nfetched later, which conflicts with the output from Linus's repo where I \nget the (possibly packed) tags first, in chronological order.\n"},{"id":"86742","messageId":"20080811024341.GA27195@spearce.org","threadId":"14918","inReplyTo":"alpine.LNX.1.10.0808101124370.1727@fbirervta.pbzchgretzou.qr","subject":"Re: Two-step tag fetching","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-08-11T02:43:41Z","receivedAt":"2008-08-11T02:43:41Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Jan Engelhardt <jengelh@medozas.de> wrote:\n> On Sunday 2008-08-10 11:19, Jan Engelhardt wrote:\n> >\n> >I have a somewhat older development tree at git://dev.medozas.de/linux \n> >(about 2.6.26-rc6), and without any tags. Now, adding in Linus's \n> >repository makes it gather all the new stuff, and all the missing tags:\n> >[...]\n> >What interests me here is why there are two \"From\" lines.\n...\n> And my suspicion is that v2.6.19.1--v2.6.19.6 have been repacked into \n> packed-refs, and v2.6.19.7 has been added later and is a loose tag (as \n> is the master branch). So the packed-refs (with less recent history) are \n> fetched later, which conflicts with the output from Linus's repo where I \n> get the (possibly packed) tags first, in chronological order.\n\nSort of, but not really.\n\nThe remote server running git:// must not be new enough to support\nthe include-tag extension.  So fetching tags which the client\ndoes not have the objects for, and which the client isn't 100%\nsure it will need to fetch have to be done during the second pass,\nwhich is when the second From line is displayed.\n\nThese tags caught during the second pass are tags pointing at much\nolder commits; commits which no active branch is currently pointing\nat directly, but which are reachable indirectly.  That is why you\nare seeing this second pass pick up the \"older\" tags.\n\n-- \nShawn.\n"}]}