{"thread":{"id":"13483","subject":"git-bundle question.","startedAt":"2008-05-11T22:11:46Z","lastAt":"2008-05-12T01:19:39Z","messageCount":3,"participants":["Govind Salinas","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"76664","messageId":"5d46db230805111511g5bbb0b9amf65fb95266a80504@mail.gmail.com","threadId":"13483","inReplyTo":null,"subject":"git-bundle question.","fromName":"Govind Salinas","fromEmail":"govind@sophiasuchtig.com","sentAt":"2008-05-11T22:11:46Z","receivedAt":"2008-05-11T22:11:46Z","isPatch":false,"sender":{"key":"govind@sophiasuchtig.com","avatar":null},"body":"Hi,\n\nI am writing my wrapper over git bundle and I noticed that the\n\"SPECIFYING REFERENCES\" section says that the it will only\nbundle things that end in something git-show-ref can find.\n\nI can probably work around this by silently creating a tag\ndoing the bundle and deleting the tag, but I want to know why\nthis restriction is in there in the first place?  If there is a good\nreason for it then I will probably just add this info to the\ndocumentation.\n\nThanks,\nGovind.\n"},{"id":"76668","messageId":"7v3aoo2wob.fsf@gitster.siamese.dyndns.org","threadId":"13483","inReplyTo":"5d46db230805111511g5bbb0b9amf65fb95266a80504@mail.gmail.com","subject":"Re: git-bundle question.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-12T00:28:04Z","receivedAt":"2008-05-12T00:28:04Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Govind Salinas\" <govind@sophiasuchtig.com> writes:\n\n> I am writing my wrapper over git bundle and I noticed that the\n> \"SPECIFYING REFERENCES\" section says that the it will only\n> bundle things that end in something git-show-ref can find.\n>\n> I can probably work around this by silently creating a tag\n> doing the bundle and deleting the tag, but I want to know why\n> this restriction is in there in the first place?  If there is a good\n> reason for it then I will probably just add this info to the\n> documentation.\n\nBecause bundle is not just a random collection of objects, a tarball of\nyour .git/objects/.  Instead, it is a (partial) history that leads to a\nparticular (set of) versions.\n\nThink of it as what \"git fetch $somewhere $that_branch\" could give you.\nIt is not giving you just a collection of random objects, but you are\nchoosing from the endpoint the particular repository ($somewhere) is\noffering you.\n\nWhen you publish your history to be fetched over the network (or locally\nfor that matter), you do not just put bunch of objects there.  You give\nbranches to mark where the histories end.  It's the same deal with\nbundles, and the only difference is the transfer may go over sneakernet.\n"},{"id":"76669","messageId":"5d46db230805111819o7d01523au30fb1abcff8be754@mail.gmail.com","threadId":"13483","inReplyTo":"5d46db230805111817i786f3402qbfd5ec70d020ab1f@mail.gmail.com","subject":"Re: git-bundle question.","fromName":"Govind Salinas","fromEmail":"govind@sophiasuchtig.com","sentAt":"2008-05-12T01:19:39Z","receivedAt":"2008-05-12T01:19:39Z","isPatch":false,"sender":{"key":"govind@sophiasuchtig.com","avatar":null},"body":"forgot to reply to list\n\nOn Sun, May 11, 2008 at 8:17 PM, Govind Salinas\n<govind@sophiasuchtig.com> wrote:\n> On Sun, May 11, 2008 at 7:28 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>> \"Govind Salinas\" <govind@sophiasuchtig.com> writes:\n>>\n>>> I am writing my wrapper over git bundle and I noticed that the\n>>> \"SPECIFYING REFERENCES\" section says that the it will only\n>>> bundle things that end in something git-show-ref can find.\n>>>\n>>> I can probably work around this by silently creating a tag\n>>> doing the bundle and deleting the tag, but I want to know why\n>>> this restriction is in there in the first place?  If there is a good\n>>> reason for it then I will probably just add this info to the\n>>> documentation.\n>>\n>> Because bundle is not just a random collection of objects, a tarball of\n>> your .git/objects/.  Instead, it is a (partial) history that leads to a\n>> particular (set of) versions.\n>>\n>> Think of it as what \"git fetch $somewhere $that_branch\" could give you.\n>> It is not giving you just a collection of random objects, but you are\n>> choosing from the endpoint the particular repository ($somewhere) is\n>> offering you.\n>>\n>> When you publish your history to be fetched over the network (or locally\n>> for that matter), you do not just put bunch of objects there.  You give\n>> branches to mark where the histories end.  It's the same deal with\n>> bundles, and the only difference is the transfer may go over sneakernet.\n>>\n>>\n>\n> Sure, I understand that.  However, I can use a tag to create a bundle\n> that does not go to an endpoint.  I can also advance that branch to\n> a later commit by whatever mechanism (say committing something)\n> and then the bundle no longer points to the endpoint, it points to\n> the middle somewhere.  Git, from what I have seen, likes to treat\n> HEADs as just another commit and it is a bit surprising to see this\n> particular limitation here.  I see this as kind of like git-push where\n> the person who has the commits is specifying them, and there you\n> can specify any commit.  Although pull/fetch have similar\n> limitations, so perhaps it is not so surprising.\n>\n> If I wanted to share a patch series via bundle and the patches I\n> wanted went from HEAD~10..HEAD~5 then I *could* checkout -b\n> HEAD~5 or tag HEAD~5, but I do not see an advantage to doing so.\n>\n> I don't really use bundles, so it's not a big deal to me.  I just\n> thought I would ask to make sure I wasn't going to break something.\n>\n> Thanks,\n> Govind.\n>\n"}]}