Code

allow git-bundle to create bottomless bundle
authorJunio C Hamano <gitster@pobox.com>
Thu, 9 Aug 2007 05:04:06 +0000 (22:04 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 11 Aug 2007 05:19:15 +0000 (22:19 -0700)
commitc06793a4ed1bf81902c324d1ed88dd055c3aa468
tree5e2e631672e382e16cb5083ba526f094d9527974
parent7fa8254f9476de24661e93b2a90c6ce30dc10006
allow git-bundle to create bottomless bundle

Mark Levedahl <mlevedahl@gmail.com> writes:

> Junio C Hamano wrote:
>> While "git bundle" was a useful way to sneakernet incremental
>> changes, we did not allow:
>>
> Thanks - I've been thinking for months I could fix this bug, never
> figured it out and didn't want to nag Dscho one more time. I confirm
> that this allows creation of bundles with arbitrary refs, not just
> those under refs/heads. Yahoo!

Actually, there is another bug nearby.

If you do:

git bundle create v2.6-20-v2.6.22.bndl v2.6.20..v2.6.22

the bundle records that it requires v2.6.20^0 commit (correct)
and gives you tag v2.6.22 (incorrect); the bug is that the
object it lists in fact is the commit v2.6.22^0, not the tag.

This is because the revision range operation .. is always about
set of commits, but the code near where my patch touches does
not validate that the sha1 value obtained from dwim_ref()
against the commit object name e->item->sha1 before placing the
head information in the commit.

The attached patch attempts to fix this problem.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-bundle.c