Reputation: 36617
I looking for a way to create Delta Diff Patches of Large Binary Files (VMWare Virtual Disk Files). Is there an implementation in C# or any useful methods in the the .NET Framework.
Any help is appreciated. Thanks.
rAyt
Upvotes: 6
Views: 9316
Reputation: 74197
Here's a C# class that implements Meyers O(ND) Difference Algorithm:
http://www.mathertel.de/Diff/default.aspx
Enjoy!
Upvotes: 3
Reputation: 28162
bsdiff was designed to create very small patches for binary files.
As stated on its page, it requires max(17*n,9*n+m)+O(1)
bytes of memory and runs in O((n+m) log n)
time (where n
is the size of the old file and m
is the size of the new file), so it will take a long time and use a huge amount of memory to create diffs for virtual disk files.
The original implementation is in C, but a C# port is described here and available here.
Upvotes: 6
Reputation: 391306
There's nothing built into the framework to do this.
You're going to have to look for 3rd party solutions, commercial or free, or write your own.
A common algorithm is the VCDiff algorithm, which is used by quite a large number of products.
Upvotes: 3