Re: git archive generates tar with malformed pax extended attribute
- From
Jeff King <peff@peff.net>
- Date
- May 24, 2019, 07:06 UTC
- Message-ID
- <20190524070644.GF25694@sigill.intra.peff.net>
- In-Reply-To
- <CAMVcy0Q0TL6uEGR2NeudJrOiXdQ87XcducL0EwMidWucjk5XYw@mail.gmail.com>
On Fri, May 24, 2019 at 08:45:23AM +0200, Keegan Carruthers-Smith wrote:
Show 18 quoted lines
> git archive can generate a malformed tar archive. bsdtar reports the > error "tar: Ignoring malformed pax extended attribute" when reading > the archive. Go's "tar/archive" package also reports the error > "archive/tar: invalid tar header". However, BusyBox's tar does not > report the error (unsure if it just has less error logging). > > I can reproduce this when generating the tar on linux and mac. I > tested this with "git version 2.21.0" and a build of next I did today: > "git version 2.22.0.rc1.257.g3120a18244" > > Reproduction: > > $ git clone https://github.com/SSW-SCIENTIFIC/NNDD.git > $ cd NNDD > $ git archive --format tar c21b98da2ca7f007230e696b2eda5da6589fe137 > | tar tf - > /dev/null > tar: Ignoring malformed pax extended attribute > tar: Error exit delayed from previous errors.
I can't reproduce on Linux, using GNU tar (1.30) nor with bsdtar 3.3.3 (from Debian's bsdtar package). What does your "tar --version" say?
Git does write a pax header with the commit id in it as a comment. Presumably that's what it's complaining about (but it is not malformed according to any tar I've tried). If you feed git-archive a tree rather than a commit, that is omitted. What does:
git archive --format tar c21b98da2^{tree} | tar tf - >/dev/nullsay? If it doesn't complain, then we know it's indeed the pax comment field.
-Peff