Bsdiff - a binary diff/patch tool for Ruby
Ruby bindings for Colin Percival's excellent bsdiff/bspatch binary patching tool.
Installation
Install the gem and add it to the application's Gemfile by executing:
bundle add bsdiff
If bundler is not being used to manage dependencies, install the gem by executing:
gem install bsdiff
The original source archive is located in dir src
and diffs to show changes made in creating the Ruby bindings are in dir diffs
. The integrity of both are verified in the tests. The tests also verify the integrity of the (unmodified) bzip2 source files in the bzip2
dir.
Usage
require 'bsdiff'
# generate a patch for oldfile to newfile
Bsdiff.diff '/path/to/oldfile', '/path/to/newfile', '/path/to/patchfile.patch' # patchfile is created
# apply the patch to create newfile from oldfile and the patchfile
Bsdiff.patch '/path/to/oldfile', '/path/to/newfile', '/path/to/patchfile.patch' # newfile is created
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome at https://gitlab.com/matzfan/bsdiff.
License
The gem is available as open source under the terms of the FreeBSD License.
Bsdiff includes selected source files from the bzip2 library and its license is included.