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: src/usr.bin/bsdiff/bspatch/bspatch.1,v 1.1 2005/08/06 01:59:06 cperciva Exp $ 27.\" 28.Dd May 18, 2003 29.Dt BSPATCH 1 30.Os FreeBSD 31.Sh NAME 32.Nm bspatch 33.Nd apply a patch built with bsdiff(1) 34.Sh SYNOPSIS 35.Nm 36.Ar oldfile newfile patchfile 37.Op Ar old-extents new-extents 38.Sh DESCRIPTION 39.Nm 40generates 41.Ar newfile 42from 43.Ar oldfile 44and 45.Ar patchfile , 46where 47.Ar patchfile 48is a binary patch built by 49.Xr bsdiff 1 . 50.Pp 51When provided, 52.Ar old-extents 53and 54.Ar new-extents 55instruct 56.Nm 57to read specific chunks of data from the old file and to write to specific 58locations in the new file, respectively. Each is a comma-separated list of 59extents of the form 60.Ar offset : Ns Ar length , 61where 62.Ar offset 63is either -1 or a non-negative integer and 64.Ar length 65is a positive integer. An offset value of -1 denotes a sparse extent, namely a 66sequence of zeros that entails neither reading nor writing of actual file 67content. 68.Pp 69.Nm 70uses memory equal to the size of 71.Ar newfile , 72but can tolerate a very small working set without a dramatic loss 73of performance. 74.Sh SEE ALSO 75.Xr bsdiff 1 76.Sh AUTHORS 77.An Colin Percival Aq cperciva@freebsd.org 78