xref: /freebsd/usr.bin/bsdiff/bsdiff/bsdiff.1 (revision 069ac184)
1.\"-
2.\" Copyright 2003-2005 Colin Percival
3.\" All rights reserved
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted providing that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
18.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
23.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24.\" POSSIBILITY OF SUCH DAMAGE.
25.\"
26.Dd May 18, 2003
27.Dt BSDIFF 1
28.Os
29.Sh NAME
30.Nm bsdiff
31.Nd "generate a patch between two binary files"
32.Sh SYNOPSIS
33.Nm
34.Ar oldfile newfile patchfile
35.Sh DESCRIPTION
36The
37.Nm
38utility
39compares
40.Ar oldfile
41to
42.Ar newfile
43and writes to
44.Ar patchfile
45a binary patch suitable for use by
46.Xr bspatch 1 .
47When
48.Ar oldfile
49and
50.Ar newfile
51are two versions of an executable program, the
52patches produced are on average a factor of five smaller
53than those produced by any other binary patch tool known
54to the author.
55.Pp
56The
57.Nm
58utility
59uses memory equal to 17 times the size of
60.Ar oldfile ,
61and requires
62an absolute minimum working set size of 8 times the size of
63.Ar oldfile .
64.Sh SEE ALSO
65.Xr bspatch 1
66.Sh AUTHORS
67.An Colin Percival Aq Mt cperciva@FreeBSD.org
68.Sh BUGS
69The
70.Nm
71utility does not store the hashes of
72.Ar oldfile
73or
74.Ar newfile
75in
76.Ar patchfile .
77As a result, it is possible to apply a patch to the wrong file; this
78will usually produce garbage.
79It is recommended that users of
80.Nm
81store the hashes of
82.Ar oldfile
83and
84.Ar newfile
85and compare against them before and after applying
86.Ar patchfile .
87