home *** CD-ROM | disk | FTP | other *** search
- BDIFF/BUPDATE: Binary file differencer/updater
-
- What they do?
- =============
- Bdiff creates a binary difference between two files. On unix like systems,
- many people use diff and patch to update source files. They are very powerful
- for "line oriented" data. However, they are incapable of handling binary data.
- Modifying a single line in source file amounts to a considerable difference
- in its compiled object. Calling address, variable address, segment value, they
- will all change even when object's structure remains similar.
- Bdiff creates the difference of two objects. Suppose, the difference will be
- much smaller than whole new object file. With bupdate and "old object file",
- you can create new object file from the difference file.
-
- What's good?
- ============
- The merit of size, is very important if you distribute the difference on
- line. And there is another reason to use difference. Only the person who
- has "old version" can get new version of program. So, you can release the
- update information of your charged program (commercial, shareware, etc.).
- You do no need to bundle a document again. Cause, who use it, must have a
- document bundled with the package of older version.
- Bdiff can pack many difference files into one file. You can see the
- information of differences the file contents with bupdate command. With
- composite difference file, you can update many files of a package at once.
- Of course, not only program file, but document file can be updated with
- BDIFF/BUPDATE. It is not so effective than to use diff/patch. Nevertheless,
- it is much more convenient.
- Not only differences of different files, you can pack the differences for
- same file, but between different versions.
- Suppose you released a program versions 1.1, 1.2, and 1.3. You can not guess
- who holds which version. In such case, you can pack respective differences
- between 1.1 and 1.2, between 1.2 and 1.3, and finally between 1.3 and the new
- version 1.4.
- The holder of the program version 1.2, can update from his version to 1.3
- then to 1.4. Bupdate checks the version and does this incremental updating
- to the newest and will report its actions on the screen. You just watch it.
- Difference data to incremental update, is more effective in the size than
- the sum of all differences between new version and every respective version.
-
-
- NOTE
- ====
- "CURRENT" outputs of Bdiff is not so compact. They must be larger than 1/8
- of original program file size. You had better use compressing tools such as
- LHarc to get down the size of up- downloading. In future version of Bdiff,
- you may expect to have compressed output directly.
- If you use RCS for maintenance of source files, and write RCS header in
- the program, you can let Bdiff automatically scan the header. Bdiff will
- modify time stamps of files from the scan, and will record revision number
- into difference file. This function of Bdiff makes maintenance of version
- easier.
- If there is large difference between two files, Bdiff may fail to create
- difference. The difference must be smaller than 16KB.
- Bdiff is effective enough for code changing, inserting, and deleting. But
- it is not so for moving. Future version may be improved.
-
-
- ********** BDIFF
-
- Usage:
- ======
- BDIFF [-swindow[:rate]] [(-r|-x)] [-i] [-a] [-v[rev:rev]] oldfile newfile [diffile]
-
- You have to assume two file names of old version file, and new version file.
- You can not omit them. Of course, they are not the same name. To make
- difference between two versions of a.exe, please rename older versions of a.exe
- as a.old or such name. Otherwise, place them in different directories.
- You may not modify <newfile> name instead of <oldfile>. Because, This name
- is recorded into differnce file, and used on updating.
- Bdiff may cause some confusion when it meets a file with version number in
- its name.
- The output has the name <diffile> if you specify it, otherwise the output
- has the name combined with a prime name of <newfile> and default extension of
- ".bdf". You can omit <diffile> argument usually.
-
- Suppose you create difference between bdiff123.exe and bdiff124.exe, you type:
-
- bdiff bdiff123.exe bdiff124.exe
-
- to have the diffile bdiff124.bdf by default. The name implies that this
- diffile is to update a program with name bdiff124.ext not bdiff123.ext.
- The file bdiff123.bdf will try to update bdiff123.exe while bdiff124.bdf
- searches for bdiff124.exe. You can not expect your user to have bdiff124.exe
- since this is going to be the new version. If you type
-
- bdiff bdiff123.exe bdiff124.exe bdiff123.bdf
- ^^^^^^^
- then you can get the BDF file with proper name. When you omit <diffile>
- please be aware of the fact that <diffile> name is recorded in itself.
-
- There are some options. I will describe them below.
-
- Options:
- ========
- -s: To assume data span and required match rate in comparing. To assume
- span, use unit of byte. To assume ratio, use unit of per-cent.
- Default value of span is 15 bytes, and rate is 66%. It means if 10
- characters in each 15 succeeding characters of two compared files
- match, Bdiff believes two sets of data synchronize.
- If some data insertion/deletion occurs, data sync is broken. Then,
- Bdiff scans the context, and restart from a new position at which such
- sync is possible.
- Default values are reasonable to compare normal dos executable files.
- However, if you want to compare source/document files, you'd better
- assume large sapn/rate values. For example, -s20:100 option will give
- more effective outputs.
- If you do not specify rate you will have the default value of 80%.
- -r: Good for source files. Output size remains the same if this option is
- on or off. Nevertheless, "compressed" file size may vary.
- I am not sure if this option may be valid in the future compatibility.
- -x: Output "reverse" difference data with normal data. BDF files
- created with -x option, supports "version down" if need.
- Note that output contains a part of <oldfile>. Be careful about
- valid dates of copyright statement.
- -i: Suppress time stamp comparison. Bupdate first check time stamp,
- sum, length of target to insure updating correct file. Of course,
- it is good way to compare time stamp. But if you loose released file,
- and time stamp is unknown (though contents of files are equal),
- use this option.
- RCS header will try to avoid such cases.
- -a: Append difference data after existing BDF file. With this option,
- you can pack the difference of different files, between different
- versions.
- -v: You can assume revisions of <oldfile> and <newfile> with this option.
- If you write RCS header in the objects, Bdiff records each version
- number in a difference file. If you don't, it is encouredged to assume
- each version number with this option.
- With -v option, Bdiff refrains from correcting time stamps even with
- RCS header. If you don't want to modify time stamp, use this option.
-
- Return value
- ============
- 0 for normal case, 1 for error.
-
- Compatibility with older versions:
- ================================
- Omitted.
- PLEASE USE BDIFF1.2x OR LATER.
-
- Examples:
- =========
- Creating difference between Bdiff.old(1.1) and Bdiff.exe(1.2).
- bdiff bdiff.old bdiff.exe
- will create bdiff.bdf which is a difference between versions 1.1->1.2.
-
- Creating "reverse" difference.
- bdiff -x bdiff.old bdiff.exe
-
- Creating difference between non-RCS headered programs.
- bdiff -v1.1:1.2 bdiff.old bdiff.exe
-
- Add difference of document into created BDF file.
- bdiff -a -s20:100 bdoc.old bdiff.doc bdiff.bdf
- You do not need to specify Extension of "bdiff.bdf".
-
-
- ********* BUPDATE
-
- Usage:
- ======
- BUPDATE (-v | -d | -x [-i[s]] [-r] [-o] [-wdir]) diffile [file[;source]..]
-
- Bupdate updates files using a deference file created by Bdiff. If more
- than one difference is encountered in a single BDF file, Bupdate updates
- all files required.
- It is also used to display the contents of BDF file, and to remove
- some differences in a composite-difference BDF file.
- File names to update, are written in a BDF file. So most simple use,
- only BDF file name is required for an argument, regardless of single difference
- BDF or multiple differences BDF. To update bdiff.exe from 1.1 to 1.2,
- type:
-
- bupdate bdiff.bdf
- or bupdate bdiff
-
- In normal usage, you actually not need to type filename extension ".bdf".
- After updating, extension of original files to update, will be modified
- as ".org". If a file with an extension ".org" already exists, its extension
- will be renamed as ".nnn" where nnn is a 3 digit number.
- You can also give file name templates after BDF file name. They can
- include wildcards in themselves. If they assumed, bupdate procceeds execution
- for only files whose name match to the templates. To update exe files only, use
- "*.exe" as a template.
- Type:
-
- bupdate bdiff *.exe
-
- when you have files bdiff.exe and bdiff.doc in the curent directory.
- You can add a "path" for the templates. This is useful in updating files
- in some other directory. In case when files to be updated are in drive C:,
- type:
- bupdate foo.bdf c:*.*
-
- Updating files must have exactly the same contents to the ones used to
- create differences. Bupdate checks time stamps, sums, lengths. For some
- reason, if you want time stamp comparison to be ignored, use -i option which
- is described below. If -i option was assumed on creating difference, time
- comparison is always ignored.
-
- Options:
- ========
- -v: Verbosely outputs contents of BDF file. Prints file names to update,
- time stamps of old and new versions of the file, their file size,
- their revisions, and BDF file size.
- This option is useful to see what version is required to update.
-
- -d: Deletes differences whose name match to file name templates given.
- Original BDF file is renamed as ".bak", and saved.
-
- -x: Updates files. Without -v and -d options, this option assumed as a
- default.
-
- -i: Ignores time stamps. If you modified time stamps of updating files
- for some reason(ex. re-compiling), this option will help you.
-
- -is: Ignores time stamps and sums. This option is useful to update "patched"
- versions of files.
- Assuming you have a1.exe, and a1a.exe watch is patched version of
- a1.exe. When a2.exe, which is a new version of a1.exe, released,
- first creates difference between a1.exe and a2.exe. Then assume it
- to a1a.exe with -is option. You may get a good version of a2a.exe
- under favorable circumustances.
-
- -r: Updates in reverse order. It means "version down". Create <oldfile>
- from <newfile> for bdiff. Of course, BDF file must be created with
- -x option.
-
- -o: Omitting backups. As described above, original files are renamed and
- preserved. This is to save disk space when you try incremental
- updates. With this option, all original files are discarded.
- RESERVE ORIGINAL FILES BEFORE UPDATING WITH -o OPTION, OR APPLY TO
- COPIED FILES ONLY.
-
- -w: Specify Working directory.
-
- Return value:
- =============
- 0 for success updating all files, 1 for error updating at least one file.
-
-
- Compatibility to older versions:
- ================================
- OMITTED. USE BUPDATE1.2x OR LATER.
-
-
- Source file assuming:
- ====================
- As explained above, <newfile> name is used as a updating file name. If it has
- version numbers in it, the kind of trouble you may expect is as follows.
- Suppose program distributer is going to update BDIFF123 to BDIFF124.
- distributer types:
-
- bdiff bdiff123.exe bdiff124.exe
-
- and bdiff124.bdf will be created. What happens then? You as a user have the
- difference bdiff124.bdf and bdiff123.exe. While, Bupdate looks for
- bdiff124.exe to update. You have to copy bdiff123.exe into bdiff124.exe
- or rename so before updating. Sounds complicated.
- In such case, source file assuming will do. You can give a source file name
- just after filename templates separated by a semi-colon. Templates are exact
- source file names, should not have wildcards. In case above, you type:
-
- bupdate bdiff124.bdf bdiff124.exe;bdiff123.exe
-
- to avoid copying. If bdiff124.bdf encounters only one difference, you can
- type in short:
-
- bupdate bdiff124 ;bdiff123.exe
-
- After all, I dare to say including a version number in a file name is not
- a good manner. Use time stamp instead.
-
-
- ************ modtime
-
- Usage:
- modtime filename
-
- This program is used to set time stamp according to RCS header included.
- Modify time stamp before INITIAL release. It will make you free from
- remembering time stamp of released one.
-
-
-
- ************ bupmini
-
- Usage:
- bupmini bdf_file
-
- This tiny program is for update only. This program does not have the
- ability to display or modify the contents of BDF file.
- This program acts just as bupdate with -o option, does NOT create backups.
- You have to preserve origainal files for your own sake.
- Slightly modified version of bupmini, makes "self updating" BDF file enable.
- Please contact us for such version.
-
- +-------------------------------------------------------+
- |This file is not contained in English Version of Bdiff.|
- +-------------------------------------------------------+
-
- ************ COPYRIGHT and OTHERS
-
- Term of "this program" described below, means all programs and documents
- contained in this archive. And what described below, are affected to this
- version only. They may be changed without notice in future.
-
- On distributing and using:
- ==========================
- * All copyrights of this program are reserved by the author.
- * You can distribute this program freely if
- - distributing this program only (not with other programs)
- - not changed
- - free without media charge
- - not any copyrights restricted by distributing (it means, for example,
- never upload on a BBS who claims copyrights of uploaded programs).
- * You can use this program to create difference free, and release difference
- data created by this program free, regardless of commercial or no-commercial
- base.
- * Please contact us to use this program itself (ex. adding update program
- with difference, and distributing it).
- * NO WARRANTY OF THIS PROGRAM. THIS PROGRAM IS SUPPLIED AS-IS.
- WE ASSUME NO LIABILITY FOR DAMAGES DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT
- FROM THE USE OF THIS PROGRAM.
-
-
-
- Toshiyuki TANAKA
- TNT Technology corp.
-
- KAKINOKIZAKA 3-6-7-111,
- MEGURO, TOKYO
- 152 JAPAN
-
- +813-795-0168 may accept
- your "AUTO DIALED" fax.
-
- Oversea Users Contact
- K.Okubo Genie,
- 74100,2565 Compuserve,
- or E-Mail address:
- c31834@sinet.ad.jp
-
-
-
-