xref: /freebsd/usr.bin/bsdiff/bsdiff/bsdiff.1 (revision c697fb7f)
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.\" $FreeBSD$
27.\"
28.Dd May 18, 2003
29.Dt BSDIFF 1
30.Os
31.Sh NAME
32.Nm bsdiff
33.Nd "generate a patch between two binary files"
34.Sh SYNOPSIS
35.Nm
36.Ar oldfile newfile patchfile
37.Sh DESCRIPTION
38The
39.Nm
40utility
41compares
42.Ar oldfile
43to
44.Ar newfile
45and writes to
46.Ar patchfile
47a binary patch suitable for use by
48.Xr bspatch 1 .
49When
50.Ar oldfile
51and
52.Ar newfile
53are two versions of an executable program, the
54patches produced are on average a factor of five smaller
55than those produced by any other binary patch tool known
56to the author.
57.Pp
58The
59.Nm
60utility
61uses memory equal to 17 times the size of
62.Ar oldfile ,
63and requires
64an absolute minimum working set size of 8 times the size of
65.Ar oldfile .
66.Sh SEE ALSO
67.Xr bspatch 1
68.Sh AUTHORS
69.An Colin Percival Aq Mt cperciva@FreeBSD.org
70.Sh BUGS
71The
72.Nm
73utility does not store the hashes of
74.Ar oldfile
75or
76.Ar newfile
77in
78.Ar patchfile .
79As a result, it is possible to apply a patch to the wrong file; this
80will usually produce garbage.
81It is recommended that users of
82.Nm
83store the hashes of
84.Ar oldfile
85and
86.Ar newfile
87and compare against them before and after applying
88.Ar patchfile .
89