Subject: Re: Re: [PATCH] Add git-bundle - pack objects and references for disconnected transfer

From: Mark Levedahl <[email-masked]>
Date: Fri, 16 Feb 2007 06:45:16 -0600 (CST)

>From: Simon 'corecode' Schubert <[email-masked]>
>Date: 2007/02/16 Fri AM 05:57:20 CST
>To: "Shawn O. Pearce" <[email-masked]>
>Cc: Mark Levedahl <[email-masked]>, [email-masked]
>Subject: Re: [PATCH] Add git-bundle - pack objects and references for disconnected transfer

>Shawn O. Pearce wrote:
>> Mark Levedahl <[email-masked]> wrote:
>>> +# create the tar file, clean up
>>> +tar cf "$bfile" --absolute-names --transform="s,$tmp-,," \
>>> +    --verbose --show-transformed-names \
>>> +    "$references" "$pack"
>> 
>> I'm not sure this will work on FreeBSD.  Both 5.1 and 6.1 use tar
>> that does not know about --absolute-names, --transform, --verbose,
>> or --show-transformed-names.
>
>for portability, pax is the official choice :)  and it can even do path name modifications with -s.  but why again are we using tar there?  this data could easiliy be put in one mixed text/binary file, starting out with
>
>#!/bin/sh
>echo "This is a git bundle.  Use git-unbundle to process me." >&1
>exit
>### DATA ###
>
>or so
>
>cheers
>  simon

... I *tried* that, and it fails under Cygwin. Apparently cygwin's bash (or something) mangles data in the pipe (99% certain it will turn out to be a latent crlf issue)...

cat "$bfile" (
    read refs...
    git index-pack --stdin
)

worked several times, it only failed twice out of 8 bundles I tried. That's just a trifle bit too high a failure rate for my taste. ;^)

Mark