-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Description
Is your feature request related to a problem? Please describe.
I like to archive older versions of programs like patch does for text-files. But there seems to be no good and fast solution to create delta patches for binary files which can be applied in both directions.
Describe the solution you'd like
The ideal solution would be to specify two uncompressed files and a dictionary that was trained on the filetype and get a small delta that can be applied forwards (to patch the old version to the new one) and backward (to patch the new version to the old one).
This way I can efficiently copy the new file to secondary storage, store it permanently. Then I generate the new version from the old file and delete the old file.
Describe alternatives you've considered
There's bsdiff which is quite slow and cannot be trained to be efficient on a specific filetype, and there's courgette that is highly specialized - and cannot be used on random binary files (as far as I understand).
Both are unable to patch in the reverse direction, which is necessary if you want to store the newest file completely not the oldest one. Otherwise, every access to the newest file would require to apply all patches one after another.