residualvm/residualvm — pull request #617 by YakBizzarro (2012-05-03 08:52:18+00:00)
Title: GRIM: Rewrite of PatchR

Same as #606, with a major/minor versioning scheme and more error handling code.
@Klusark and Giucam: I've tested all patches, except for those for si.lua and ha.lua. Could you check if they work correctly? I don't know how to trigger the bugs that these patches resolve.

Original description:
This commit introduces a new version of patchr, written from scratch, but heavily based on bsdiff format (http://www.daemonology.net/bsdiff/).
This new format is totally binary, and comes with a tool (diffr) to build automatically the patches from the old and the new file.
For more information about the new format, see the documentation alleged to the pull request of diffr and patchr tools in residualvm-tools.

The diffr tool, with the new -b option of luac, makes the process of patching lua scripts much more easy, I'll write a guide for that.
Furthermore it can patch efficiently large files, since the whole old file is not loaded anymore in the ram and it doesn't make memmoves on larges portions of the file.

All patches written for the old version have been ported to this one.