ReadMe(FHist) ReadMe(FHist) NAME fhist - file history and comparison tools Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2012 Peter Miller; Portions of this program are Copyright (C) 1990 David I. Bell. The fhist package is distributed under the terms of the GNU General Public License, see the LICENSE section, below, for more information. DESCRIPTION The FHist package contains 3 utilities, a file history tool "fhist", a file comparison tool "fcomp", and a file merging tool "fmerge". All three are bundled together, because they all use the same minimal- difference algorithm. fhist Keeps track of versions of a file. It works correctly when given binary files as input. See fhist(1) for more information. fcomp Compares two versions of a file, usually line-for-line textual comparison. It is capable of comparing two binary files byte- for-byte. See fcomp(1) for more information. fmerge Merges together edits from two descendants of a file. See fmerge(1) for more information. The history tool presented here, fhist, is a minimal history tool. It provides no locking or branching. This can be useful in contexts where the configuration management or change control be being provided by some other tool. REFERENCES This program is based on the algorithm in An O(ND) Difference Algorithm and Its Variations, Eugene W. Myers, TR 85-6, 10-April-1985, Department of Computer Science, The University of Arizona, Tuscon, Arizona 85721. See also: A File Comparison Program, Webb Miller and Eugene W. Myers, Software Practice and Experience, Volume 15, No. 11, November 1985. BUILDING For complete instructions for host to build these programs, see the BUILDING file included in this distribution. ARCHIVE SITE The latest version of fhist is available on the Web from: URL: http://fhist.sourceforge.net/ File: index.html # The FHist page. File: fhist-1.21.README # Description, from the tar file File: fhist-1.21.lsm # Description, in LSM format File: fhist-1.21.spec # RedHat package spec File: fhist-1.21.tar.Z # The complete source. FHist is also carried by sunsite.unc.edu in its Linux archives. You will be able to find FHist on any of its mirrors. URL: ftp://sunsite.unc.edu/pub/Linux/devel/vc/ File: fhist-1.21.README # Description, from the tar file File: fhist-1.21.lsm # Description, in LSM format File: fhist-1.21.spec # RedHat package spec File: fhist-1.21.tar.Z # The complete source. This site is extensively mirrored around the world, so look for a copy near you (you will get much better response). COPYRIGHT fhist version 1.21.D001 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2012 Peter Miller; This program is derived from a work Copyright (C) 1990 David I. Bell. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . AUTHORS Peter Miller Web: http://miller.emu.id.au/pmiller/ /\/\* E-Mail: pmiller@opensource.org.au David I. Bell Web: http://www.canb.auug.org.au/~dbell E-Mail: dbell@canb.auug.org.au RELEASE NOTES For excruciating detail, and also acknowledgements of those who generously sent me feedback, please see the etc/CHANGES.1.21 file included in this distribution. A number of features and bug fixes have been added to fhist with this release. A few of them are detailed here: Version 1.21 (2012-Jul-13) * The Debian package description has been fixed. Version 1.20 (2012-May-21) * The project now compiles using recent gcc 4.5 version. Version 1.19 (2010-Sep-17) * There is now a dependency on libexplain, for much better error messages. http://libexplain.sourceforge.net/ Version 1.18 (2009-Oct-16) * The .XX macro usage has been made conditional in the man pages, to silence Debian lintian warnings. * The use of naked "-" have been replaced with "\-" for option introducers, "\[hy]" for hyphens, and "\[mi]" for minus signs, to silence Debian lintian warnings. * The author's email address has been updated. Version 1.17 (2008-Jun-17) * The licenseis now GPLv3. * The fhist(1) command now accepts a remark string on the command line. Version 1.16 (2005-Dec-20) * There is a new fmerge -ignore-identical-conflicts option which may be used to suppress logical conflicts in which the same thing is done by both variants. This is often a better match for users' expectations for merging source code. Version 1.15 (2005-Nov-08) * There is a new fcomp -no-binary option, which may be used to prevent the comparison of binary files, instead it treats them both as empty. * A small build problem on MacOS X has been fixed. Version 1.14 (2004-Jun-08) * The ./configure script now understands the --with-nlsdir option, so that you can place the .mo files. * The fhist(1) program is now able to cope with numeric modules names. * The occasional false negative from test 26 has been fixed. It was failing for some users because of message translation (internationalization) issues. Version 1.13 (2003-Mar-13) * A bug has been fixed in some of the tests. They were susceptible to false negatives if the display width changed. * All references to the cuserid function have been replaced. It isn't sufficiently portable to be used in real programs. Version 1.12 (2002-Nov-28) * Some build problems have been fixed. Version 1.11 (2002-Nov-26) * Some build problems, relating to modern ANSI C compilers choking on K&R function definitions with variable arguments, have been fixed. * Two bugs relating to the handling of binary files by fhist(1) have been fixed. * A bug which left garbage files behind when a create failed has been fixed. Version 1.10 (2002-Jul-09) * Interrupt handling has been improved. * There is a new fhist -No_Keywords option, used to completely disable keyword substitution. * Several build problems have been fixed. Version 1.9 (2001-Oct-23) No public release. Version 1.8 (2001-Oct-16) * There is a new -BINary option for the fcomp(1) program, which compares binary files a byte at time, printing the results in hexadecimal. * The fcomp(1) program now silently copes with CRLF line terminations. Version 1.7 (2000-Apr-11) * The fhist(1) command now has a -binary option, which may be used to store the history of binary files. * The fhist(1) command has a new -make-path option, which requests that the history directory be created if necessary. * A bug in fhist(1) wich caused a SEGFAULT when you used the -t option (extract to terminal) has been fixed. Version 1.6 (1999-Oct-25) * An RPM spec file has been added to the distribution. * The code is now more robust about what various UNIX systems return from pathconf(). * A bug with the "fcomp -blank" option has been fixed. Version 1.5 (1999-Jun-01) * Binary files are now detected on input, and the utilities file gracefully with a warning or error message, as appropriate. * Some buffer over-run bugs have been fixed. * Several improvements have been made to the portability. Version 1.4 (1998-Sep-16) * The install and build procedures have been made more robust, and they take note of more of the information provided by GNU Autoconf. * The error messages have been internationalized, so it is now possible to obtain error messages in your native language. (If you would like to contribute with error message translations, please contact the author.) * An LSM description has been added, along with a HTML page to present it all nicely at the archive site. * A RedHat Package Manager spec file has been added, so that a RedHat package can be created. The spec file is in the standard distribution. Version 1.3 (1998-Mar-29) This version was not distributed at all. Version 1.2 This version was not distributed very widely. * The non-standard isblank function is no longer used, it cause too many portability problems. * The use of pathconf is not more robust for more operating systems. Version 1.1 * The fhist package now uses a shell script called configure to configure itself. This script is generated using the GNU Autoconf utility. This should make fhist significantly easier to configure, and significantly more portable. * A bug has been fixed in the conflict reporting of the fmerge program. It now correctly opens the conflicts file. * The fhist program now uses pathconf(2) to determine file name length limits. Reference Manual FHist ReadMe(FHist)