Re: git-bundle question.
forgot to reply to list
On Sun, May 11, 2008 at 8:17 PM, Govind Salinas <govind@sophiasuchtig.com> wrote:
Show 50 quoted lines
> On Sun, May 11, 2008 at 7:28 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> "Govind Salinas" <govind@sophiasuchtig.com> writes:
>>
>>> I am writing my wrapper over git bundle and I noticed that the
>>> "SPECIFYING REFERENCES" section says that the it will only
>>> bundle things that end in something git-show-ref can find.
>>>
>>> I can probably work around this by silently creating a tag
>>> doing the bundle and deleting the tag, but I want to know why
>>> this restriction is in there in the first place? If there is a good
>>> reason for it then I will probably just add this info to the
>>> documentation.
>>
>> Because bundle is not just a random collection of objects, a tarball of
>> your .git/objects/. Instead, it is a (partial) history that leads to a
>> particular (set of) versions.
>>
>> Think of it as what "git fetch $somewhere $that_branch" could give you.
>> It is not giving you just a collection of random objects, but you are
>> choosing from the endpoint the particular repository ($somewhere) is
>> offering you.
>>
>> When you publish your history to be fetched over the network (or locally
>> for that matter), you do not just put bunch of objects there. You give
>> branches to mark where the histories end. It's the same deal with
>> bundles, and the only difference is the transfer may go over sneakernet.
>>
>>
>
> Sure, I understand that. However, I can use a tag to create a bundle
> that does not go to an endpoint. I can also advance that branch to
> a later commit by whatever mechanism (say committing something)
> and then the bundle no longer points to the endpoint, it points to
> the middle somewhere. Git, from what I have seen, likes to treat
> HEADs as just another commit and it is a bit surprising to see this
> particular limitation here. I see this as kind of like git-push where
> the person who has the commits is specifying them, and there you
> can specify any commit. Although pull/fetch have similar
> limitations, so perhaps it is not so surprising.
>
> If I wanted to share a patch series via bundle and the patches I
> wanted went from HEAD~10..HEAD~5 then I *could* checkout -b
> HEAD~5 or tag HEAD~5, but I do not see an advantage to doing so.
>
> I don't really use bundles, so it's not a big deal to me. I just
> thought I would ask to make sure I wasn't going to break something.
>
> Thanks,
> Govind.
>