.\" .\" aegis - project change supervisor .\" Copyright (C) 1993, 1994, 1998, 2002, 2005-2008 Peter Miller .\" .\" 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 .\" . .\" .bp .if t .2C .nh 1 "The Difference Tools" .LP This chapter describes the difference commands in the project configuration file. Usually these commands are used by the .I "aegis -DIFFerence" command when differencing files, but they may be used to accomplish some other things. .LP The default setting is for Aegis to reject filenames which contain shell special characters. This ensures that filenames may be substituted into the commands without worrying about whether this is safe. If you set the \fIshell_safe_filenames\fP field of the project \fIaegis.conf\fP file to \f(CWfalse\fP, you will need to surround filenames with the \f[CW]${quote\fP \fIfilename\fP\f[CW]}\fP substitution. This will only quote filenames which actually need to be quoted, so users usually will not notice. This command applies to all of the various filenames in the sections which follow. .nh 2 "Binary Files" .LP Aegis doesn't particularly care whether your files are binary or text. However, your difference and merge tools certainly will. In general, you need format-specific difference and merge tools for each of the file formats used in your project. Unfortunately, most vendors of software which make use of proprietary file formats do not supply difference and merge tools. .LP The simplest compromise is to treat all files as text, with manual repairs for binary files. .LP A more elegant solution is to use a shell script invoked by the \fIdiff_\%command\fP in the project \fIaegis.conf\fP file. This shell script examines the file to determine the file format, and then runs the appropriate difference tool. Similar considerations apply to the \fImerge_\%command\fP field. .LP Please note that this support is not present in Aegis itself because (a) it would cause code bloat, and (b) it is entirely possible to do with a shell script launched by \fIdiff_command\fP. .so c8.1.so .so c8.2.so .so c8.3.so