elpc: I've done this:
xdelta3 -e -s gog_pillars_of_eternity_1.0.0.1.tar.gz gog_pillars_of_eternity_1.1.0.2.tar.gz gog_pillars_of_eternity_1.1.0.2.tar.gz.delta
The resulting delta is smaller, 84MB uncompressed. I haven't tested it yet.
Also, I hadn't noticed xdelta3 would decompress the original files.
If any of you have a md5sum of the original tar.gz files, I'll be able to check if they're unmodified :)
shmerl: Interesting. I didn't think of applying a delta to archives, I thought they'd differ way too much. Applying it to unpacked files and then compressing would be my first approach.
It may be a bit more memory/cpu intensive, so it takes a bit, but the resulting diff is smaller.
Creating the new archive/recompressing, does indeed change the sums for the resulting file, so in the end it may have been useless.
xdelta3: externally compressed input: gzip -dc < gog_pillars_of_eternity_1.0.0.1.tar.gz
xdelta3: externally compressed input: gzip -dc < gog_pillars_of_eternity_1.1.0.2.tar.gz
xdelta3: WARNING: the encoder is automatically decompressing the input file;
xdelta3: WARNING: the decoder will automatically recompress the output file;
xdelta3: WARNING: this may result in different compressed data and checksums
xdelta3: WARNING: despite being identical data; if this is an issue, use -D
xdelta3: WARNING: to avoid decompression and/or use -R to avoid recompression
xdelta3: WARNING: and/or manually decompress the input file; if you know the
xdelta3: WARNING: compression settings that will produce identical output
xdelta3: WARNING: you may set those flags using the environment (e.g., GZIP=-9)
md5sum gog_pillars_of_eternity_1.1.0.2.tar.gz
8e240d11206c33f1e57ca06142136b4b gog_pillars_of_eternity_1.1.0.2.tar.gz
Maybe using the --rsyncable flag for gzip? Without knowing the original compression options, it might not be possible get the same sum for the archive.
I've just uncompressed it and I'll check if it works properly.