Subversion Repositories nw_plus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 h266 1
Binary diff/patch utility version 4.3, written by 
2
Copyright 2003-2005 Colin Percival <cperciva@freebsd.org>
3
 
4
bzip2/libbzip2 version 1.0.4 of 20 December 2006
5
Copyright (C) 1996-2006 Julian Seward <jseward@bzip.org>
6
 
7
This is a quick native Win32-Port by 
8
Andreas John <dynacore@tesla.inka.de>
9
 
10
-------------------------------------------------------------------------
11
Quick overview from the homepage of these tools:
12
http://www.daemonology.net/bsdiff/
13
 
14
Binary diff/patch utility
15
bsdiff and bspatch are tools for building and applying patches to binary
16
files. By using suffix sorting (specifically, Larsson and Sadakane's
17
qsufsort) and taking advantage of how executable files change, bsdiff
18
routinely produces binary patches 50-80% smaller than those produced by
19
Xdelta, and 15% smaller than those produced by .RTPatch (a $2750/seat
20
commercial patch tool). 
21
 
22
These programs were originally named bdiff and bpatch, but the large
23
number of other programs using those names lead to confusion; I'm not
24
sure if the "bs" in refers to "binary software" (because bsdiff produces
25
exceptionally small patches for executable files) or "bytewise
26
subtraction" (which is the key to how well it performs). Feel free to
27
offer other suggestions. 
28
 
29
bsdiff and bspatch use bzip2; by default they assume it is in /usr/bin. 
30
 
31
bsdiff is quite memory-hungry. It requires max(17*n,9*n+m)+O(1) bytes of
32
memory, where n is the size of the old file and m is the size of the new
33
file. bspatch requires n+m+O(1) bytes. 
34
 
35
bsdiff runs in O((n+m) log n) time; on a 200MHz Pentium Pro, building a
36
binary patch for a 4MB file takes about 90 seconds. bspatch runs in
37
O(n+m) time; on the same machine, applying that patch takes about two
38
seconds. 
39
 
40
Providing that off_t is defined properly, bsdiff and bspatch support
41
files of up to 2^61-1 = 2Ei-1 bytes.
42
-------------------------------------------------------------------------