I probably should have checked this thread earlier so I wouldn't have done unnecessary work.
I see that
tseliger had similar idea with patchmonger.
patchmonger seems to do almost exactly the same thing as my patcher.
Perhaps this tool is useful for someone.
Here is xdelta3dir
As the name implies it uses xdelta3 to create delta files from directories.
https://sites.google.com/site/gogdownloader/xdelta3dir-1.0.tar.gz md5: 0bf8d2c4e84ea1b4f36e888b21bba313
sha256: 46752fa1a681863543640bf4cfaa82e7739a98aa2255b1a01d225fe74636a289
Required libraries:
libboost-system
libboost-filesystem
libboost-date-time
libboost-program-options
libtinyxml
librhash
liblzma
tar -xvzf xdelta3dir-1.0.tar.gz
cd xdelta3dir-1.0
make release
sudo make install
To create a patch
xdelta3dir --diff old new patch
To use delta files also for new files
xdelta3dir --use-null-file --diff old new patch
To apply a patch
xdelta3dir --patch target patch
Here's 1.03 to 1.04 patch created with it
https://sites.google.com/site/gogdownloader/gog-poe-linux-patch_1.1.0.2_1.2.0.3.7z md5: 080e23a38fc7e4542e7dde99dcb38fdf
sha256: 89d28123d15f05137c5015ab17d9af4c8bcc7f0602594fa536ee8a2e3f6fb906
7z x gog-poe-linux-patch_1.1.0.2_1.2.0.3.7z
xdelta3dir --patch /path/to/Pillars\ of\ Eternity/ gog-poe-linux-patch_1.1.0.2_1.2.0.3/