Re: Working with zip files
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 16, 2016, 16:58 UTC
- Message-ID
- <xmqqeg5oejmn.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <alpine.DEB.2.02.1608160926330.11774@nftneq.ynat.uz>
David Lang <david@lang.hm> writes:
Show 5 quoted lines
> you should be able to use clean/smudge to have git store the files > uncompressed, which will help a lot. > > I think there's a way to tell it to do a xml aware diff/patch, but I > don't remember how.
I do not know about "patch" (in the sense of "git apply"), but "git diff" (and "git log -p") can take advantage of the clean/smudge mechanism. I used to deal with a file format that is gzipped xml so my clean filter was "gzip -dc" while the smudge was "gzip -cn". Essentially, this stors the xml before compression in the repository so blobs delta well with each other and also the revisions are made textually diff-able.
Nikolaus's case has one extra layer of complexity in that the "file" is actually an archive of multiple files. The clean/smudge pair he writes need to be a filter that flattens the archive into a single human-readable text byte stream and its reverse.