jmacd / xdelta

open-source binary diff, delta/differential compression tools, VCDIFF/RFC 3284 delta compression
http://xdelta.org
1.09k stars 181 forks source link

xdelta is not detecting large amount of data to patch #252

Open latot opened 5 years ago

latot commented 5 years ago

Hi, i was patching a splited file of 1.6GB, i split it with split --bytes=800MB file P, then we have two files, one of 800 and other off 761, there all fine, then i run:

xdelta3 -e -s P800 file delta1
xdelta3 -e -s P761 file delta2

That should easy to construct the new patches, but now the weird thing, the first delta, comparing the first file, and the same time is the first part of the file, the delta file size is 781MB, basically all the rest of the big file, all fine.

But with the second, the delta file is 1.5GB..., is 95% of the original file, while we have the 45% of the file in the source..., xdelta3 is not detecting the data.

Bye.

ivan386 commented 5 years ago

@latot If you have enough memory you can set source window size (-B) to source file size.

xdelta3 -e -B797966336 -s P761 file delta2
myhouselove commented 4 years ago

I have the similar issue problem. I have a base apk named src.apk,the size is 1.8G,And another apk named dst.apk,the size is 1.6G. When I use the jojodiff,the result patch size is 600M,but when I use the xdelta3 diff like this:

xdelta3 -e -s src.apk dst.apk out.diff

the result patch is 1.6G!!!! Unbeliveble! who can tell me why?

latot commented 4 years ago

Hi @ivan386 , is nice to know that there is other method, no idea why i never get the mail with your answer, i think so...., so.., why xdelta doesn't detect this?, if the algorythm detect equal sections in the data, check if the strings can have more in common than the specific substring?

Thx.

sergeevabc commented 3 years ago

Anyone else could confirm this?

latot commented 3 years ago

mm, I don't know if someone else want to try it too...