Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: othersrc/external/bsd/binpatch

Module Name:    othersrc
Committed By:   agc
Date:           Fri Jan 11 06:27:01 UTC 2013

Update of /cvsroot/othersrc/external/bsd/binpatch
In directory

Log Message:
Import a binary patch library, libbinpatch(3), and program,
binpatch(1), into the othersrc repository.  This can be used to encode
a binary patch file from an original file, and a new file.  To do
this, 3 separate "instructions" are used, similar to those outlined in
RFC 3284 -

        + add - addition of new data
        + copy - copying of data from original file
        + run - a run of characters, similar to memset(3)

The binary patches generated here are a much simplified form of those
described in the RFC, but have 64bit offsets and 32bit sizes in the
instructions.  The generated binary patch files are also much smaller
than the original files, and even standard diffs, and are only just
larger then the equivalent vcdiff binary patch file.

        % diff f1 f2 | wc
              58     338    1969
        % diff -u f1 f2 | wc 
              85     408    2530
        % binpatch -e f1 f2 | wc
              44     269    1801
        % vcdiff encode -dictionary f1 -target f2 | wc
              40     257    1663

(The last is the Google vcdiff program found in pkgsrc/devel/open-vcdiff)

The binpatch(1) program can be used to generate binary patch files,
and to reconstruct the target files, in the following way

        % binpatch -e -o patch f1 f2
        % binpatch -f f1 -o recon patch
        % diff f2 recon
        % rm -f recon
        % binpatch -v -f f1 -o recon patch
        Add  1337 bytes
        Copy 187 bytes from 0
        Copy 386 bytes from 198
        Add  50 bytes
        Copy 173 bytes from 592
        Add  55 bytes
        Copy 373 bytes from 816
        Add  74 bytes
        Copy 34 bytes from 1189
        Add  182 bytes
        Copy 23 bytes from 1262
        diff f2 recon
        % diff f2 recon
        % rm -f recon

binpatch(1) uses libbinpatch(3) and libnetdiff(3) to encode binary
patch files, and libbinpatch(3) to decode binary patch files.


Vendor Tag:     CROOKS
Release Tags:   binpatch-base
N othersrc/external/bsd/binpatch/Makefile
N othersrc/external/bsd/binpatch/bin/007.expected
N othersrc/external/bsd/binpatch/bin/Makefile
N othersrc/external/bsd/binpatch/bin/f1
N othersrc/external/bsd/binpatch/bin/f2
N othersrc/external/bsd/binpatch/dist/Makefile
N othersrc/external/bsd/binpatch/dist/binpatch.c
N othersrc/external/bsd/binpatch/dist/binpatch.h
N othersrc/external/bsd/binpatch/dist/main.c
N othersrc/external/bsd/binpatch/dist/libbinpatch.3
N othersrc/external/bsd/binpatch/dist/binpatch.1
N othersrc/external/bsd/binpatch/lib/Makefile
N othersrc/external/bsd/binpatch/lib/shlib_version

No conflicts created by this import

Home | Main Index | Thread Index | Old Index