alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

README file for JBDiff (Java Binary Diff) 
Version: 0.1.1
Release date: 1 Oct 2007

JBDiff (Java Binary Diff) utility is a Java translation of the bsdiff (v4.2) utility 
by Colin Percival. See http://www.daemonology.net/bsdiff/

The file format is similar to, but currently not compatible with the bsdiff utility. 
This is because bsdiff uses bzip2 for compression which is not available in the 
standard Java libraries. Instead I use gzip (java.util.zip.*)

The diff utility is very memory hungry. Attempting to diff very large files with 
insufficient RAM may cause your computer to 'trash' (ie become unusably slow and may
require a reset to recover). Comparing two 20MB files will take approx 80 seconds 
on a 2GHz Pentium 4 and will require a maximum heap size of at least 220 MBytes. The
maximum heap size can be specified using the -Xmx switch to the Java VM (see examples
below). The patch utility has more modest resource requirements.

EXAMPLES:

To compare old.bin with new.bin and produce diff file new-old.diff:

java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBDiff old.bin new.bin new-old.diff

To patch old.bin with new-old.diff to produce new.bin:

java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBPatch old.bin new.bin new-old.diff

TODO:

This first release is a rather blind port of the bsdiff utility. A vast bulk of
the code ported to Java without any modification. There is scope 
for optimization (the C bsdiff runs in approx 50% faster than JBDiff).

Also it would be nice to be able to produce output that is compatible with bsdiff.
I need a bzip2 library for that.

Any suggestions, feedback and bugs will be much appreciated. Please email
to joe@galway.net

LICENSE:

Now available under BSD license (previously GPL).

CHANGES SINCE 0.1.0 RELEASE:

Change of license from GPL v2 to BSD license.

Joe Desbonnet
jdesbonnet@gmail.com
1 Oct 2007
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.