1/*
2 *	aegis - project change supervisor
3 *	This file is in the Public Domain, 1995, 1998, 2001 Peter Miller.
4 *
5 * The entries for the commands are listed below.  SCCS uses a slightly
6 * different model than aegis wants, so some maneuvering is required.  The
7 * command strings in this section assume that the SCCS commands admin and get
8 * and delta are in the command search PATH, but you may like to hard-wire the
9 * paths, or set PATH at the start of each.  You should also note that the
10 * strings are always handed to the Bourne shell to be executed, and are set to
11 * exit with an error immediately a sub-command fails.
12 *
13 * The ${quote ...} construct is used to quote filenames which contain
14 * shell special characters.  A minimum of quoting is performed, so if
15 * the filenames do not contain shell special characters, no quotes will
16 * be used.
17 *
18 *	NOTE:  NOTE:  NOTE:  NOTE:  NOTE:  NOTE:  NOTE:  NOTE:	NOTE:
19 *	I only ever tried this stuff using GNU CSSC.  I have no idea
20 *	whether it works with any other SCCS implementation.
21 */
22
23/*
24 * This command is used to create a new project history.
25 * The command is always executed as the project owner.
26 * The following substitutions are available:
27 *
28 * ${Input}
29 *	absolute path of the source file
30 * ${History}
31 *	absolute path of the history file
32 *
33 * This assumes that the ae-sccs-put script is in the $PATH.  The history
34 * file is created of it does not exist.  The file is left in the
35 * "not editing state".  The original source ($input) file is left in
36 * the baseline.
37 *
38 * It is essential that the history_put_command be identical to the
39 * the history_create_command for branching to work correctly.
40 */
41history_create_command =
42	"ae-sccs-put -s -y${quote ($version) ${change description}} "
43	"-G${quote $input} ${quote ${dirname $history}/s.${basename $history}}";
44
45/*
46 * This command is used to get a specific edit back from history.
47 * The command may be executed by developers.
48 * The following substitutions are available:
49 *
50 * ${History}
51 *	absolute path of the history file
52 * ${Edit}
53 *	edit number, as given by history_query_command
54 * ${Output}
55 *	absolute path of the destination file
56 *
57 * get -r<rid>	edit number
58 * get -s	silent
59 * get -p	use stdout
60 * get -k	suppress keywords
61 */
62history_get_command =
63	"sccs get -r${quote $edit} -s -k -G${quote $output} "
64	"${quote ${dirname $history}/s.${basename $history}}";
65
66/*
67 * This command is used to add a new "top-most" entry to the history file.
68 * This command is always executed as the project owner.
69 * The following substitutions are available:
70 *
71 * ${Input}
72 *	absolute path of source file
73 * ${History}
74 *	absolute path of history file
75 *
76 * This assumes that the ae-sccs-put script is in the $PATH.  The history
77 * file is created of it does not exist.  The file is left in the
78 * "not editing state".  The original source ($input) file is left in
79 * the baseline.
80 *
81 * It is essential that the history_put_command be identical to the
82 * the history_create_command for branching to work correctly.
83 */
84history_put_command =
85	"ae-sccs-put -s -y${quote ($version) ${change description}} "
86	"-G${quote $input} ${quote ${dirname $history}/s.${basename $history}}";
87
88/*
89 * This command is used to query what the history mechanism calls the top-most
90 * edit of a history file.  The result may be any arbitrary string, it need not
91 * be anything like a number, just so long as it uniquely identifies the edit
92 * for use by the history_get_command at a later date.  The edit number is to
93 * be printed on the standard output.  This command may be executed by
94 * developers.  The following substitutions are available:
95 *
96 * ${History}
97 *	absolute path of the history file
98 *
99 * Note that "get" reports the edit number on stderr.
100 *
101 * get -g	no input
102 * get -t	include branches
103 */
104history_query_command =
105	"sccs get -t -g ${quote ${dirname $history}/s.${basename $history}} "
106	"2> /dev/null";
107