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