home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-09-24 | 160.0 KB | 5,891 lines |
- Newsgroups: comp.sources.unix
- From: pmiller@bmr.gov.au (Peter Miller)
- Subject: v27i038: aegis - project change supervisor (V2.1), Part03/19
- References: <1.748951883.12788@gw.home.vix.com>
- Sender: unix-sources-moderator@gw.home.vix.com
- Approved: vixie@gw.home.vix.com
-
- Submitted-By: pmiller@bmr.gov.au (Peter Miller)
- Posting-Number: Volume 27, Issue 38
- Archive-Name: aegis-2.1/part03
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 3 (of 19)."
- # Contents: aegis/arglex2.h aegis/common.def aegis/dir.c aegis/file.c
- # aegis/glue.h aegis/io.c aegis/os.h aegis/user.h aux/patches.sh
- # common/mem.c doc/c1.0.so doc/c1.2.so doc/c1.4.so doc/c2.0.so
- # doc/c3.0.so doc/c3.3.so doc/c7.5.so doc/c8.1.so doc/c8.2.so
- # fmtgen/type.h fmtgen/type_integ.c fmtgen/type_ref.c
- # fmtgen/type_strin.c lib/aegis.icon lib/aegis.mask lib/cshrc
- # lib/profile man1/aeb.1 man1/aecp.1 man1/aecpu.1 man1/aed.1
- # man1/aedb.1 man1/aede.1 man1/aeib.1 man1/aeif.1 man1/aeip.1
- # man1/ael.1 man1/aemv.1 man1/aenc.1 man1/aenf.1 man1/aenfu.1
- # man1/aenpr.1 man1/aent.1 man1/aerf.1 man1/aet.1 man5/aecattr.so
- # man5/aegis.5 man5/aeuconf.5 test/00/t0001a.sh test/00/t0013a.sh
- # test/00/t0014a.sh
- # Wrapped by vixie@gw.home.vix.com on Sat Sep 25 03:00:27 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'aegis/arglex2.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/arglex2.h'\"
- else
- echo shar: Extracting \"'aegis/arglex2.h'\" \(2782 characters\)
- sed "s/^X//" >'aegis/arglex2.h' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: definitions of command line tokens
- X */
- X
- X#ifndef ARGLEX2_H
- X#define ARGLEX2_H
- X
- X#include <arglex.h>
- X
- Xenum
- X{
- X arglex_token_anticipate,
- X arglex_token_automatic,
- X arglex_token_baseline,
- X arglex_token_build,
- X arglex_token_change,
- X arglex_token_change_attributes,
- X arglex_token_change_directory,
- X arglex_token_copy_file,
- X arglex_token_copy_file_undo,
- X arglex_token_defaults,
- X arglex_token_delta,
- X arglex_token_develop_begin,
- X arglex_token_develop_begin_undo,
- X arglex_token_develop_end,
- X arglex_token_develop_end_undo,
- X arglex_token_development_directory,
- X arglex_token_difference,
- X arglex_token_directory,
- X arglex_token_edit,
- X arglex_token_force,
- X arglex_token_independent,
- X arglex_token_integrate_begin,
- X arglex_token_integrate_begin_undo,
- X arglex_token_integrate_fail,
- X arglex_token_integrate_pass,
- X arglex_token_keep,
- X arglex_token_list,
- X arglex_token_log,
- X arglex_token_major,
- X arglex_token_manual,
- X arglex_token_minimum,
- X arglex_token_minor,
- X arglex_token_move_file,
- X arglex_token_new_administrator,
- X arglex_token_new_change,
- X arglex_token_new_change_undo,
- X arglex_token_new_developer,
- X arglex_token_new_file,
- X arglex_token_new_file_undo,
- X arglex_token_new_integrator,
- X arglex_token_new_project,
- X arglex_token_new_release,
- X arglex_token_new_reviewer,
- X arglex_token_new_test,
- X arglex_token_new_test_undo,
- X arglex_token_nolog,
- X arglex_token_overwriting,
- X arglex_token_output,
- X arglex_token_page_length,
- X arglex_token_page_width,
- X arglex_token_project,
- X arglex_token_project_attributes,
- X arglex_token_regression,
- X arglex_token_remove_administrator,
- X arglex_token_remove_developer,
- X arglex_token_remove_file,
- X arglex_token_remove_file_undo,
- X arglex_token_remove_integrator,
- X arglex_token_remove_project,
- X arglex_token_remove_reviewer,
- X arglex_token_review_fail,
- X arglex_token_review_pass,
- X arglex_token_review_pass_undo,
- X arglex_token_terse,
- X arglex_token_test,
- X arglex_token_unformatted,
- X arglex_token_verbose,
- X arglex_token_library
- X};
- X
- X#endif /* ARGLEX2_H */
- END_OF_FILE
- if test 2782 -ne `wc -c <'aegis/arglex2.h'`; then
- echo shar: \"'aegis/arglex2.h'\" unpacked with wrong size!
- fi
- # end of 'aegis/arglex2.h'
- fi
- if test -f 'aegis/common.def' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/common.def'\"
- else
- echo shar: Extracting \"'aegis/common.def'\" \(2299 characters\)
- sed "s/^X//" >'aegis/common.def' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: enumerations common to many aegis file contents
- X *
- X * If you change this file, don't forget to change
- X * man5/aecattr.so
- X * man5/aepstate.5
- X */
- X
- Xtype boolean = (false, true);
- Xtype change_cause =
- X(
- X /*
- X * The change was created in response to
- X * a bug report
- X * from outside the development team.
- X * This repairs existing functionality.
- X */
- X external_bug,
- X
- X /*
- X * The change was created in response to
- X * an enhancement request
- X * from outside the development team.
- X * This adds new functionality.
- X */
- X external_enhancement,
- X
- X /*
- X * The change was created in response to
- X * an improvement request
- X * from outside the development team.
- X * This improves existing functionality.
- X */
- X external_improvement,
- X
- X /*
- X * The change was created in response to
- X * a bug report
- X * from inside the development team.
- X * This repairs existing functionality.
- X */
- X internal_bug,
- X
- X /*
- X * The change was created in response to
- X * an enhancement request
- X * from inside the development team.
- X * This adds new functionality.
- X */
- X internal_enhancement,
- X
- X /*
- X * The change was created in response to
- X * an improvement request
- X * from inside the development team.
- X * This improves existing functionality.
- X */
- X internal_improvement,
- X
- X /*
- X * This cause is where you have a fix to fix a fix;
- X * tracking these is an interesting quality metric.
- X */
- X chain
- X);
- Xtype file_action = (create, modify, remove);
- Xtype file_usage = (source, build, test, manual_test);
- END_OF_FILE
- if test 2299 -ne `wc -c <'aegis/common.def'`; then
- echo shar: \"'aegis/common.def'\" unpacked with wrong size!
- fi
- # end of 'aegis/common.def'
- fi
- if test -f 'aegis/dir.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/dir.c'\"
- else
- echo shar: Extracting \"'aegis/dir.c'\" \(2341 characters\)
- sed "s/^X//" >'aegis/dir.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to walk directory trees
- X */
- X
- X#include <sys/types.h>
- X#include <sys/stat.h>
- X
- X#include <dir.h>
- X#include <error.h>
- X#include <glue.h>
- X#include <trace.h>
- X#include <word.h>
- X
- X
- Xvoid
- Xdir_walk(path, callback, arg)
- X string_ty *path;
- X dir_walk_callback_ty callback;
- X void *arg;
- X{
- X wlist wl;
- X struct stat st;
- X int j;
- X string_ty *s;
- X char *cp;
- X char *data;
- X long data_len;
- X
- X trace(("dir_walk(path = %08lX, callback = %08lX, \
- Xarg = %08lX)\n{\n"/*}*/, path, callback, arg));
- X trace_string(path->str_text);
- X#ifdef S_IFLNK
- X if (glue_lstat(path->str_text, &st))
- X nfatal("lstat(\"%s\")", path->str_text);
- X#else
- X if (glue_stat(path->str_text, &st))
- X nfatal("stat(\"%s\")", path->str_text);
- X#endif
- X switch (st.st_mode & S_IFMT)
- X {
- X case S_IFDIR:
- X callback(arg, dir_walk_dir_before, path, &st);
- X wl_zero(&wl);
- X if (glue_read_whole_dir(path->str_text, &data, &data_len))
- X nfatal("read \"%s\" directory", path->str_text);
- X cp = data;
- X while (cp < data + data_len)
- X {
- X s = str_from_c(cp);
- X cp += s->str_length + 1;
- X wl_append(&wl, s);
- X str_free(s);
- X }
- X for (j = 0; j < wl.wl_nwords; ++j)
- X {
- X s = str_format("%S/%S", path, wl.wl_word[j]);
- X dir_walk(s, callback, arg);
- X }
- X wl_free(&wl);
- X callback(arg, dir_walk_dir_after, path, &st);
- X break;
- X
- X case S_IFREG:
- X callback(arg, dir_walk_file, path, &st);
- X break;
- X
- X#ifdef S_IFLNK
- X case S_IFLNK:
- X callback(arg, dir_walk_symlink, path, &st);
- X break;
- X#endif
- X
- X default:
- X callback(arg, dir_walk_special, path, &st);
- X break;
- X }
- X trace((/*{*/"}\n"));
- X}
- END_OF_FILE
- if test 2341 -ne `wc -c <'aegis/dir.c'`; then
- echo shar: \"'aegis/dir.c'\" unpacked with wrong size!
- fi
- # end of 'aegis/dir.c'
- fi
- if test -f 'aegis/file.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/file.c'\"
- else
- echo shar: Extracting \"'aegis/file.c'\" \(3362 characters\)
- sed "s/^X//" >'aegis/file.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions for pushing files around
- X */
- X
- X#include <stdio.h>
- X#include <ctype.h>
- X#include <errno.h>
- X
- X#include <file.h>
- X#include <error.h>
- X#include <glue.h>
- X#include <mem.h>
- X#include <os.h>
- X#include <trace.h>
- X
- X
- X/*
- X * NAME
- X * copy_whole_file
- X *
- X * SYNOPSIS
- X * void copy_whole_file(string_ty *from, string_ty *to, int cmt);
- X *
- X * DESCRIPTION
- X * The copy_whole_file function is used to
- X * copy a file from one place to another.
- X *
- X * The time-last-modified is preserved, but not the permissions.
- X * Permissions will be 0666 and modified by the active umask.
- X *
- X * ARGUMENTS
- X * from - source path
- X * to - destination path
- X * cmt - copy modify time of file?
- X *
- X * CAVEAT
- X * Assumes that the user has already been set,
- X * uid, gid and umask.
- X */
- X
- Xvoid
- Xcopy_whole_file(from, to, cmt)
- X string_ty *from;
- X string_ty *to;
- X int cmt;
- X{
- X trace(("copy_whole_file(from = %08lX, to = %08lX)\n{\n"/*}*/, from, to));
- X os_become_must_be_active();
- X trace_string(from->str_text);
- X trace_string(to->str_text);
- X if (to->str_length)
- X {
- X if (glue_copyfile(from->str_text, to->str_text))
- X {
- X nfatal
- X (
- X "cp \"%s\" \"%s\"",
- X from->str_text,
- X to->str_text
- X );
- X }
- X }
- X else
- X {
- X if (glue_catfile(from->str_text))
- X nfatal("cat \"%s\"", from->str_text);
- X }
- X
- X /*
- X * copy last-time-modified of the file
- X */
- X if (cmt && to->str_length)
- X {
- X time_t mtime;
- X
- X mtime = os_mtime(from);
- X os_mtime_set(to, mtime);
- X }
- X trace((/*{*/"}\n"));
- X}
- X
- X
- X/*
- X * NAME
- X * read_whole_file
- X *
- X * SYNOPSIS
- X * string_ty *read_whole_file(char *path);
- X *
- X * DESCRIPTION
- X * The read_whole_file function is used to
- X * read a file into a string. The file is assumed to be a text file.
- X *
- X * ARGUMENTS
- X * path - pathname of file to be read
- X *
- X * RETURNS
- X * Pointer to string in dynamic memory containing text of file.
- X * Any trailing white space will have been removed.
- X *
- X * CAVEAT
- X * Assumes the user has already been set.
- X */
- X
- Xstring_ty *
- Xread_whole_file(fn)
- X char *fn;
- X{
- X size_t length_max;
- X size_t length;
- X char *text;
- X string_ty *s;
- X int c;
- X FILE *fp;
- X
- X os_become_must_be_active();
- X length_max = 1000;
- X length = 0;
- X text = mem_alloc(length_max);
- X fp = glue_fopen(fn, "r");
- X if (!fp)
- X nfatal("open(\"%s\")", fn);
- X while ((c = glue_fgetc(fp)) != EOF)
- X {
- X if (length >= length_max)
- X {
- X length_max *= 2;
- X mem_change_size(&text, length_max);
- X }
- X text[length++] = c;
- X }
- X if (glue_ferror(fp))
- X nfatal("read(\"%s\")", fn);
- X while (length > 0 && isspace(text[length - 1]))
- X --length;
- X glue_fclose(fp);
- X s = str_n_from_c(text, length);
- X mem_free(text);
- X return s;
- X}
- END_OF_FILE
- if test 3362 -ne `wc -c <'aegis/file.c'`; then
- echo shar: \"'aegis/file.c'\" unpacked with wrong size!
- fi
- # end of 'aegis/file.c'
- fi
- if test -f 'aegis/glue.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/glue.h'\"
- else
- echo shar: Extracting \"'aegis/glue.h'\" \(3218 characters\)
- sed "s/^X//" >'aegis/glue.h' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: interface definition for aegis/glue.c
- X */
- X
- X#ifndef AEGIS_GLUE_H
- X#define AEGIS_GLUE_H
- X
- X#include <stdio.h>
- X
- X#include <main.h>
- X#include <conf.h>
- X
- Xstruct stat;
- Xstruct utimbuf;
- Xstruct flock;
- X
- Xint copyfile _((char *src, char *dst));
- Xint catfile _((char *path));
- Xint read_whole_dir _((char *path, char **data, long *datalen));
- X
- X#ifndef CONF_NO_seteuid
- X
- X/*
- X * seteuid works
- X */
- X#define glue_access access
- X#define glue_catfile catfile
- X#define glue_chmod chmod
- X#define glue_chown chown
- X#define glue_close close
- X#define glue_creat creat
- X#define glue_copyfile copyfile
- X#define glue_fclose fclose
- X#define glue_fcntl fcntl
- X#define glue_ferror ferror
- X#define glue_fflush fflush
- X#define glue_fgetc getc
- X#define glue_fopen fopen
- X#define glue_fputc putc
- X#define glue_getcwd getcwd
- X#define glue_link link
- X#define glue_lstat lstat
- X#define glue_mkdir mkdir
- X#define glue_open open
- X#define glue_readlink readlink
- X#define glue_read_whole_dir read_whole_dir
- X#define glue_rename rename
- X#define glue_rmdir rmdir
- X#define glue_stat stat
- X#define glue_ungetc ungetc
- X#define glue_unlink unlink
- X#define glue_utime utime
- X#define glue_write write
- X
- X#else
- X
- X/*
- X * no seteuid call, or doesn't work correctly
- X */
- Xint glue_access _((char *path, int mode));
- Xint glue_catfile _((char *path));
- Xint glue_chmod _((char *path, int mode));
- Xint glue_chown _((char *path, int uid, int gid));
- Xint glue_close _((int fd));
- Xint glue_creat _((char *path, int mode));
- Xint glue_copyfile _((char *src, char *dst));
- Xint glue_fclose _((FILE *));
- Xint glue_fcntl _((int fd, int cmd, struct flock *));
- Xint glue_ferror _((FILE *));
- Xint glue_fflush _((FILE *));
- Xint glue_fgetc _((FILE *));
- XFILE *glue_fopen _((char *path, char *mode));
- Xint glue_fputc _((int, FILE *));
- Xchar *glue_getcwd _((char *buf, int max));
- Xint glue_link _((char *p1, char *p2));
- Xint glue_lstat _((char *path, struct stat *st));
- Xint glue_mkdir _((char *path, int mode));
- Xint glue_open _((char *path, int mode, int perm));
- Xint glue_readlink _((char *path, char *buf, int max));
- Xint glue_read_whole_dir _((char *path, char **data, long *datalen));
- Xint glue_rename _((char *p1, char *p2));
- Xint glue_rmdir _((char *path));
- Xint glue_stat _((char *path, struct stat *st));
- Xint glue_ungetc _((int, FILE *));
- Xint glue_unlink _((char *path));
- Xint glue_utime _((char *path, struct utimbuf *));
- Xint glue_write _((int fd, char *data, long len));
- X
- X#endif /* seteuid alternatives */
- X
- X#endif /* AEGIS_GLUE_H */
- END_OF_FILE
- if test 3218 -ne `wc -c <'aegis/glue.h'`; then
- echo shar: \"'aegis/glue.h'\" unpacked with wrong size!
- fi
- # end of 'aegis/glue.h'
- fi
- if test -f 'aegis/io.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/io.c'\"
- else
- echo shar: Extracting \"'aegis/io.c'\" \(3293 characters\)
- sed "s/^X//" >'aegis/io.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to parse and write fundamental data types
- X */
- X
- X#include <string.h>
- X#include <time.h>
- X
- X#include <indent.h>
- X#include <str.h>
- X#include <io.h>
- X
- X
- Xtype_ty integer_type =
- X{
- X type_class_integer,
- X "integer",
- X 0, /* alloc */
- X 0, /* free */
- X 0, /* enumerator */
- X};
- X
- X
- Xtype_ty string_type =
- X{
- X type_class_string,
- X "string",
- X 0, /* alloc */
- X 0, /* free */
- X 0, /* enum_parse */
- X 0, /* list_parse */
- X 0, /* struct_parse */
- X};
- X
- X
- Xstatic int suffix _((char *s1, char *s2));
- X
- Xstatic int
- Xsuffix(s1, s2)
- X char *s1;
- X char *s2;
- X{
- X size_t len1;
- X size_t len2;
- X
- X len1 = strlen(s1);
- X len2 = strlen(s2);
- X return (len2 < len1 && !strcmp(s1 + len1 - len2, s2));
- X}
- X
- X
- Xvoid
- Xinteger_write(name, this)
- X char *name;
- X long this;
- X{
- X if (!this && name)
- X return;
- X if (name)
- X indent_printf("%s = ", name);
- X if (name && !strcmp(name, "umask"))
- X indent_printf("0%lo", this & 07777);
- X else
- X indent_printf("%ld", this);
- X if (name)
- X {
- X indent_printf(";");
- X if (suffix(name, "_time") || !strcmp(name, "when"))
- X indent_printf(" /* %.24s */", ctime(&this));
- X indent_printf("\n");
- X }
- X}
- X
- X
- Xvoid
- Xstring_write(name, this)
- X char *name;
- X string_ty *this;
- X{
- X char *s;
- X int count;
- X
- X if (!this && name)
- X return;
- X if (name)
- X indent_printf("%s = ", name);
- X indent_putchar('"');
- X if (this)
- X {
- X count = 0;
- X for (s = this->str_text; *s; ++s)
- X {
- X switch (*s)
- X {
- X case '('/*)*/:
- X case '['/*]*/:
- X case '{'/*}*/:
- X ++count;
- X break;
- X
- X case /*(*/')':
- X case /*[*/']':
- X case /*{*/'}':
- X --count;
- X break;
- X }
- X }
- X if (count > 0)
- X count = -count;
- X else
- X count = 0;
- X for (s = this->str_text; *s; ++s)
- X {
- X int c;
- X
- X c = *s;
- X if (c < ' ' || c > '~')
- X {
- X char *cp;
- X
- X cp = strchr("\bb\ff\nn\rr\tt", c);
- X if (cp)
- X {
- X indent_putchar('\\');
- X indent_putchar(cp[1]);
- X if (c == '\n')
- X indent_printf("\\\n");
- X }
- X else
- X {
- X escape:
- X if (s[1] >= '0' && s[1] <= '9')
- X indent_printf("\\%03o", (unsigned char)c);
- X else
- X indent_printf("\\%o", (unsigned char)c);
- X }
- X }
- X else
- X {
- X switch (c)
- X {
- X case '('/*)*/:
- X case '['/*]*/:
- X case '{'/*}*/:
- X ++count;
- X if (count <= 0)
- X goto escape;
- X break;
- X
- X case /*(*/')':
- X case /*[*/']':
- X case /*{*/'}':
- X --count;
- X if (count < 0)
- X goto escape;
- X break;
- X
- X case '\\':
- X case '"':
- X indent_putchar('\\');
- X break;
- X }
- X indent_putchar(c);
- X }
- X }
- X }
- X indent_putchar('"');
- X if (name)
- X indent_printf(";\n");
- X}
- END_OF_FILE
- if test 3293 -ne `wc -c <'aegis/io.c'`; then
- echo shar: \"'aegis/io.c'\" unpacked with wrong size!
- fi
- # end of 'aegis/io.c'
- fi
- if test -f 'aegis/os.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/os.h'\"
- else
- echo shar: Extracting \"'aegis/os.h'\" \(3146 characters\)
- sed "s/^X//" >'aegis/os.h' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: interface definition for aegis/os.c
- X */
- X
- X#ifndef OS_H
- X#define OS_H
- X
- X#include <time.h>
- X
- X#include <main.h>
- X#include <str.h>
- X
- X#define OS_EXEC_FLAG_NO_INPUT 0
- X#define OS_EXEC_FLAG_INPUT 1
- X#define OS_EXEC_FLAG_ERROK 2
- X
- Xint os_exists _((string_ty *));
- Xvoid os_mkdir _((string_ty *path, int mode));
- Xvoid os_rmdir _((string_ty *));
- Xvoid os_rmdir_errok _((string_ty *));
- Xvoid os_mkdir_between _((string_ty *root, string_ty *rel, int mode));
- Xvoid os_rename _((string_ty *, string_ty *));
- Xvoid os_unlink _((string_ty *));
- Xvoid os_unlink_errok _((string_ty *));
- Xstring_ty *os_curdir _((void));
- Xstring_ty *os_pathname _((string_ty *, int));
- Xstring_ty *os_dirname _((string_ty *));
- Xstring_ty *os_entryname _((string_ty *));
- Xstring_ty *os_below_dir _((string_ty *, string_ty *));
- Xvoid os_chdir _((string_ty *));
- Xvoid os_setuid _((int));
- Xvoid os_setgid _((int));
- Xvoid os_execute _((string_ty *cmd, int flags, string_ty *dir));
- Xint os_execute_retcode _((string_ty *cmd, int flags, string_ty *dir));
- Xstring_ty *os_execute_slurp _((string_ty *cmd, int flags, string_ty *dir));
- Xtime_t os_mtime _((string_ty *));
- Xvoid os_mtime_set _((string_ty *, time_t));
- Xvoid os_chown_check _((string_ty *path, int mode, int uid, int gid));
- Xvoid os_chmod _((string_ty *, int));
- Xvoid os_chmod_errok _((string_ty *, int));
- Xint os_chmod_query _((string_ty *));
- Xvoid os_link _((string_ty *from, string_ty *to));
- Xint os_testing_mode _((void));
- Xvoid os_become_init _((void));
- Xvoid os_become _((int uid, int gid, int umask));
- Xvoid os_become_undo _((void));
- Xvoid os_become_orig _((void));
- Xvoid os_become_query _((int *uid, int *gid, int *umask));
- Xvoid os_become_orig_query _((int *uid, int *gid, int *umask));
- X
- Xint os_become_active _((void));
- X#define os_become_must_be_active() \
- X os_become_must_be_active_gizzards(__FILE__, __LINE__)
- Xvoid os_become_must_be_active_gizzards _((char *, int));
- X#define os_become_must_not_be_active() \
- X os_become_must_not_be_active_gizzards(__FILE__, __LINE__)
- Xvoid os_become_must_not_be_active_gizzards _((char *, int));
- X
- Xint os_background _((void));
- Xint os_readable _((string_ty *));
- Xint os_waitpid _((int child, int *status));
- Xint os_waitpid_status _((int child, char *cmd));
- X
- Xchar *os_shell _((void));
- X
- Xvoid os_edit _((string_ty *));
- Xstring_ty *os_edit_new _((void));
- Xstring_ty *os_edit_filename _((void));
- X
- X#endif /* OS_H */
- END_OF_FILE
- if test 3146 -ne `wc -c <'aegis/os.h'`; then
- echo shar: \"'aegis/os.h'\" unpacked with wrong size!
- fi
- # end of 'aegis/os.h'
- fi
- if test -f 'aegis/user.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aegis/user.h'\"
- else
- echo shar: Extracting \"'aegis/user.h'\" \(2588 characters\)
- sed "s/^X//" >'aegis/user.h' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: interface definition for aegis/user.c
- X */
- X
- X#ifndef USER_H
- X#define USER_H
- X
- X#include <ustate.h>
- X#include <uconf.h>
- X
- Xtypedef struct user_ty user_ty;
- Xstruct user_ty
- X{
- X long reference_count;
- X struct project_ty *pp;
- X string_ty *name;
- X string_ty *full_name;
- X string_ty *home;
- X string_ty *group;
- X int uid;
- X int gid;
- X int umask;
- X string_ty *ustate_path;
- X ustate ustate_data;
- X int ustate_is_new;
- X int ustate_modified;
- X string_ty *uconf_path;
- X uconf uconf_data;
- X long lock_magic;
- X /*
- X * if you add anything to this structure,
- X * make sure you fix user_free in user.c
- X */
- X};
- X
- X
- Xuser_ty *user_numeric _((struct project_ty *pp, int uid));
- Xuser_ty *user_symbolic _((struct project_ty *pp, string_ty *user_name));
- Xuser_ty *user_executing _((struct project_ty *));
- Xvoid user_free _((user_ty *));
- Xuser_ty *user_copy _((user_ty *));
- X
- Xstring_ty *user_name _((user_ty *));
- Xint user_id _((user_ty *));
- Xint user_gid _((user_ty *));
- Xint user_umask _((user_ty *));
- X
- Xvoid user_ustate_lock_prepare _((user_ty *));
- X
- Xstring_ty *user_group _((user_ty *));
- X
- Xstring_ty *user_home _((user_ty *));
- X
- Xchar *user_full_name _((string_ty *));
- X
- Xvoid user_ustate_write _((user_ty *));
- X
- Xvoid user_own_add _((user_ty *up, struct string_ty *project_name,
- X long change_number));
- Xint user_own_nth _((user_ty *up, long n, long *change_number));
- Xvoid user_own_remove _((user_ty *, struct string_ty *project_name,
- X long change_number));
- X
- Xlong user_default_change _((user_ty *));
- Xstring_ty *user_default_project _((void));
- Xstring_ty *user_default_development_directory _((user_ty *));
- Xstring_ty *user_default_project_directory _((user_ty *));
- X
- Xint user_uid_check _((string_ty *));
- Xint user_gid_check _((string_ty *));
- Xvoid user_become _((user_ty *));
- Xvoid user_become_undo _((void));
- X
- X#endif /* USER_H */
- END_OF_FILE
- if test 2588 -ne `wc -c <'aegis/user.h'`; then
- echo shar: \"'aegis/user.h'\" unpacked with wrong size!
- fi
- # end of 'aegis/user.h'
- fi
- if test -f 'aux/patches.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'aux/patches.sh'\"
- else
- echo shar: Extracting \"'aux/patches.sh'\" \(2663 characters\)
- sed "s/^X//" >'aux/patches.sh' <<'END_OF_FILE'
- X#! /bin/sh
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1992, 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: shell script to generate the patch file
- X#
- Xcase $# in
- X2)
- X project=$1
- X change=$2
- X ;;
- X*)
- X echo "usage: $0 <project> <change>" 1>&2
- X exit 1
- X ;;
- Xesac
- X
- Xset -e
- Xtmp=/tmp/$$
- Xtmp2=/tmp/$$.2
- Xbl=`aegis -cd -bl -p $project`
- X
- X#
- X# These files are generated
- X# so we don't have an older version in history
- X#
- Xweird="README BUILDING CHANGES MANIFEST Makefile doc/version.so aux/new.so"
- Xecho "#! /bin/sh"
- Xecho "#"
- Xecho "# This is a self-applying patch in a shell script."
- Xecho "#"
- Xecho "# Change directory to the appropriate place"
- Xecho "# before applying running this shell script."
- Xecho "#"
- Xecho "# Don't forget the -p0 option if you apply this patch manually."
- Xecho "#"
- Xecho "# ------------------------------------------------------------"
- Xecho
- Xecho "#"
- Xecho "# Before you apply this patch manually,"
- Xecho "# please delete the following files:"
- Xecho "#"
- Xecho "rm -f $weird"
- Xecho
- Xecho "#"
- Xecho "# Now patch the files..."
- Xecho "# (Don't forget the -p0 option.)"
- Xecho "#"
- Xecho "patch -p0 << 'fubar'"
- X
- X#
- X# the patchlevel patch can be generated accurately
- X#
- Xecho "Index: common/patchlevel.h"
- Xprev=`aegis -list version -p $project -c $change | awk -F'"' '/previous/{print $2}'`
- Xecho "Prereq: \"$prev\""
- Xecho "#define PATCHLEVEL \"$prev\"" > $tmp
- Xset +e
- Xdiff -c $tmp common/patchlevel.h | sed '1,2d'
- Xset -e
- X
- X#
- X# get a list of files from aegis
- X#
- Xfiles=`(aegis -l pf -p $project -c $change -ter; aegis -l cf -p $project -c $change -ter) | sort -u`
- X
- X#
- X# get the diff listing for each file
- X#
- Xfor f in $files
- Xdo
- X if [ "$f" != "common/patchlevel.h" ]
- X then
- X aegis -cp $f -delta 1 -output $tmp -p $project -c $change
- X set +e
- X if [ -f $f ]
- X then
- X fn=$f
- X else
- X fn=$bl/$f
- X fi
- X if diff -c $tmp $fn > $tmp2 2> /dev/null
- X then
- X set -e
- X else
- X set -e
- X echo "Index: $f"
- X sed '1,2d' < $tmp2
- X fi
- X fi
- Xdone
- Xecho "fubar"
- X
- X#
- X# clean up and go home
- X#
- Xrm -f $tmp $tmp2
- Xexit 0
- END_OF_FILE
- if test 2663 -ne `wc -c <'aux/patches.sh'`; then
- echo shar: \"'aux/patches.sh'\" unpacked with wrong size!
- fi
- # end of 'aux/patches.sh'
- fi
- if test -f 'common/mem.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'common/mem.c'\"
- else
- echo shar: Extracting \"'common/mem.c'\" \(3460 characters\)
- sed "s/^X//" >'common/mem.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to manipulate dynamic memory
- X */
- X
- X#include <stddef.h>
- X#include <string.h>
- X#include <stdlib.h>
- X#include <errno.h>
- X
- X#include <main.h>
- X#include <mem.h>
- X#include <error.h>
- X
- X
- X/*
- X * NAME
- X * mem_alloc - allocate memory
- X *
- X * SYNOPSIS
- X * char *mem_alloc(size_t n);
- X *
- X * DESCRIPTION
- X * mem_alloc uses malloc to allocate the required sized chunk of memory.
- X * If any error is returned from malloc() an fatal diagnostic is issued.
- X *
- X * CAVEAT
- X * It is the responsibility of the caller to ensure that the space is
- X * freed when finished with, by a call to free().
- X */
- X
- Xchar *
- Xmem_alloc(n)
- X size_t n;
- X{
- X char *cp;
- X
- X if (n < 1)
- X n = 1;
- X errno = 0;
- X cp = malloc(n);
- X if (!cp)
- X {
- X if (!errno)
- X errno = ENOMEM;
- X nfatal("malloc");
- X }
- X return cp;
- X}
- X
- X
- X/*
- X * NAME
- X * mem_alloc_clear - allocate and clear memory
- X *
- X * SYNOPSIS
- X * char *mem_alloc_clear(size_t n);
- X *
- X * DESCRIPTION
- X * mem_alloc_clear uses malloc to allocate the required sized chunk of memory.
- X * If any error is returned from malloc() an fatal diagnostic is issued.
- X * The memory is zeroed befor it is returned.
- X *
- X * CAVEAT
- X * It is the responsibility of the caller to ensure that the space is
- X * freed when finished with, by a call to free().
- X */
- X
- Xchar *
- Xmem_alloc_clear(n)
- X size_t n;
- X{
- X char *cp;
- X
- X cp = mem_alloc(n);
- X memset(cp, 0, n);
- X return cp;
- X}
- X
- X
- X/*
- X * NAME
- X * enlarge - enlarges dynamic arrays
- X *
- X * SYNOPSIS
- X * char *enlarge(size_t *length, char **base, size_t size);
- X *
- X * DESCRIPTION
- X * Enlarge is used to append more space onto the end of dynamically
- X * allocated arrays.
- X * If any error is returned from the memory allocator,
- X * a fatal diagnostic is issued.
- X *
- X * RETURNS
- X * A pointer to the element added.
- X *
- X * CAVEAT
- X * Because it uses realloc, pointers into the array may be invalid after
- X * a call to enlarge(); only use indexing.
- X *
- X * The new space is not zeroed.
- X *
- X * It is the responsibility of the caller to ensure that the array is
- X * freed when finished with, by a call to free().
- X */
- X
- Xchar *
- Xenlarge(length, base, size)
- X size_t *length;
- X char **base;
- X size_t size;
- X{
- X char *result;
- X
- X if (*length)
- X mem_change_size(base, (*length + 1) * size);
- X else
- X *base = mem_alloc(size);
- X result = *base + (*length)++ * size;
- X return result;
- X}
- X
- X
- Xvoid
- Xmem_change_size(cpp, n)
- X char **cpp;
- X size_t n;
- X{
- X char *cp;
- X
- X cp = *cpp;
- X if (n < 1)
- X n = 1;
- X errno = 0;
- X cp = realloc(cp, n);
- X if (!cp)
- X {
- X if (!errno)
- X errno = ENOMEM;
- X nfatal("realloc");
- X }
- X *cpp = cp;
- X}
- X
- X
- Xvoid
- Xmem_free(cp)
- X char *cp;
- X{
- X free(cp);
- X}
- X
- X
- Xchar *
- Xmem_copy_string(s)
- X char *s;
- X{
- X char *cp;
- X
- X cp = mem_alloc(strlen(s) + 1);
- X strcpy(cp, s);
- X return cp;
- X}
- END_OF_FILE
- if test 3460 -ne `wc -c <'common/mem.c'`; then
- echo shar: \"'common/mem.c'\" unpacked with wrong size!
- fi
- # end of 'common/mem.c'
- fi
- if test -f 'doc/c1.0.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c1.0.so'\"
- else
- echo shar: Extracting \"'doc/c1.0.so'\" \(3426 characters\)
- sed "s/^X//" >'doc/c1.0.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, Introduction
- X.\"
- X\&.
- X.sp 2i
- X.ps 24
- X.vs 26
- X.ce 2
- XAegis
- XA Project Change Supervisor
- X.sp 0.5i
- X.ce 1
- XUser Guide
- X.sp 1i
- X.ps 18
- X.vs 20
- X.ce 1
- XPeter Miller
- X.OH 'Aegis''User Guide'
- X.EH 'User Guide''Aegis'
- X.bp
- X.OF 'Peter Miller'\\\\s-3(\\\\n(.F)\\\\s+3'Page %'
- X.EF 'Page %'\\\\s-3(\\\\n(.F)\\\\s+3'Peter Miller'
- X.ps 12
- X.vs 14
- X\&.
- X.sp 1i
- X.ce 1
- XDEDICATIONS
- X.sp
- X.ce 4
- XThis user guide is dedicated to my wife
- XMary Therese Miller
- Xfor all her love and support
- Xdespite the computers.
- X.sp
- X.ce 4
- XAnd to my grandmother
- XJean Florence Pelham
- X1905 \(em 1992
- XAlways in our hearts.
- X.sp 1i
- X.so version.so
- XThis document describes aegis version \*(v)
- X.br
- Xand was prepared \*(DY.
- X.br
- X.sp 1i
- X.if n .ds C) (C)
- X.if t .ds C) \(co
- XThis document describing the aegis program,
- Xand the aegis program itself,
- Xare
- X.br
- XCopyright \*(C) 1990, 1991, 1992, 1993 Peter Miller.
- XAll rights reserved.
- X.sp
- XThis program is free software; you can redistribute it and/or modify
- Xit under the terms of the GNU General Public License as published by
- Xthe Free Software Foundation; either version 1, or (at your option)
- Xany later version.
- X.sp
- XThis program is distributed in the hope that it will be useful,
- Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
- XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- XGNU General Public License for more details.
- X.sp
- XYou should have received a copy of the GNU General Public License
- Xalong with this program; if not, write to the Free Software
- XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.ps 10
- X.vs 12
- X.bp
- X.2C
- X.nh 1 "Introduction"
- X.LP
- XThe aegis program is a CASE tool with a difference.
- XIn the spirit of the
- X.UX
- XOperating System,
- Xthe aegis program is a small component designed to work with other programs.
- X.LP
- XMany CASE systems attempt to provide everything,
- Xfrom bubble charts to source control to compilers.
- XUsers are trapped with the components supplied by the CASE system,
- Xand if you don't like one of the components (it may be too limited,
- Xfor instance), then that is just tough.
- X.LP
- XIn contrast,
- X.UX
- Xprovides many components of a CASE system - compilers,
- Xeditors, dependency tools (such as make), source control (such as SCCS).
- XYou may substitute the tool of your choice - gcc, jove, cake,
- Xrcs (to name a few) if you don't like the ones supplied with the system.
- X.LP
- XThe aegis program adds to this list with software configuration
- Xmanagement (SCM),
- Xand true to
- X.UX
- Xphilosophy,
- Xthe aegis program does not dictate the choice of any of the other tools
- X(although it may stretch them to their limits).
- X.so c1.1.so
- X.so c1.2.so
- X.so c1.4.so
- X.1C
- END_OF_FILE
- if test 3426 -ne `wc -c <'doc/c1.0.so'`; then
- echo shar: \"'doc/c1.0.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c1.0.so'
- fi
- if test -f 'doc/c1.2.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c1.2.so'\"
- else
- echo shar: Extracting \"'doc/c1.2.so'\" \(2807 characters\)
- sed "s/^X//" >'doc/c1.2.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, Introduction, Why use aegis?
- X.\"
- X.nh 2 "Why use aegis?"
- X.LP
- XSo why should you use the aegis program?
- XThe aegis program uses a particular model of the development of software
- Xprojects.
- XThis model has a master source (or baseline) of a project,
- Xconsisting of several (possibly several hundred) files,
- Xand a team of developers creating changes to be made to this baseline.
- XWhen a change is complete,
- Xit is integrated with the baseline,
- Xto become the new baseline.
- XEach change must be atomic and self-contained,
- Xno change is allowed to cause the baseline to cease to work.
- X"Working" is defined as passing its own tests.
- XThe tests are considered part of the baseline.
- XAegis provides support for the developer so that an entire copy of
- Xthe baseline need not be taken to change a few files,
- Xonly those files which are to be changed need to be copied.
- X.LP
- XThe win in using the aegis program is that there are
- X.I O(n)
- Xinteractions between developers and the baseline.
- XContrast this with a master source which is
- Xbeing edited directly by the developers - there is
- X.I O(n!)
- Xinteractions between developers - this
- Xmakes adding "just one" more developer a potential disaster.
- X.LP
- XAnother win is that the project baseline always works.
- XAlways having a working baseline means that a version is always available for
- Xdemonstrations,
- Xor those "pre-release snapshots" we are always forced to provide.
- X.LP
- XThe above advantages are all very well - for management types.
- XWhy should Joe Average Programmer use the aegis program?
- XRecall that SCCS provides file locking,
- Xbut only for one file at a time.
- XThe aegis program provides the file locking, atomically, for the set of files
- Xin the change.
- XRecall also that SCCS locks the file the instant you start editing it.
- XThis makes popular files a project bottleneck.
- XThe aegis program allows concurrent editing,
- Xand a resolution mechanism just before the change must be integrated,
- Xmeaning fewer delays for J.A.Programmer.
- END_OF_FILE
- if test 2807 -ne `wc -c <'doc/c1.2.so'`; then
- echo shar: \"'doc/c1.2.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c1.2.so'
- fi
- if test -f 'doc/c1.4.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c1.4.so'\"
- else
- echo shar: Extracting \"'doc/c1.4.so'\" \(2694 characters\)
- sed "s/^X//" >'doc/c1.4.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, Introduction, How to use this manual
- X.\"
- X.bp
- X.nh 2 "How to use this manual"
- X.LP
- XThis manual assumes the reader is already familiar with the
- X.UX
- Xoperating system,
- Xand with developing software using the
- X.UX
- Xoperating system
- Xand the tools available;
- Xterms such as
- X.I RCS
- Xand
- X.I SCCS
- Xand
- X.I make (1)
- Xare not explained.
- X.LP
- XThere is also the assumption that the reader is familiar with the issues surrounding team development of software;
- Xcoordination and multiple copy issues, for example, are not explained.
- X.LP
- XThis manual is broken into a number of sections.
- X.IP "Chapter 2"
- Xdescribes
- Xhow aegis works and
- Xsome of the reasoning behind the design and
- Ximplementation of the aegis program.
- XLook here for answers to "Why does it..." questions.
- X.IP "Chapter 3"
- Xis a worked example of how particular users
- Xinteract with the aegis program.
- XLook here for answers to "How do I..." questions.
- X.IP "Chapter 4"
- Xis a discussion of how aegis interacts
- Xwith the History Tool,
- Xand provides templates and suggestions
- Xfor history tools known to work with aegis.
- X.IP "Chapter 5"
- Xis a discussion of how aegis interacts
- Xwith the Dependency Maintenance Tool (DMT),
- Xand provides templates and suggestions for DMTs known to work with aegis.
- X.IP "Chapter 6"
- Xis a discussion of how aegis interacts
- Xwith the Difference Tools,
- Xand provides templates and suggestions for difference tools
- Xknown to work with aegis.
- X.IP "Chapter 7"
- Xdescribes the project attributes
- Xand how the various parameters may be used for particular projects.
- X.IP "Chapter 8"
- Xis a collection of helpful hints on how to use aegis effectively,
- Xbased on real-world experience.
- XThis is of most use when initially placing projects under the supervision
- Xof the aegis program.
- X.IP "Appendix A"
- Xis a quick reference for placing an existing project under aegis.
- X.IP "Appendix B"
- Xis a glossary of terms.
- END_OF_FILE
- if test 2694 -ne `wc -c <'doc/c1.4.so'`; then
- echo shar: \"'doc/c1.4.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c1.4.so'
- fi
- if test -f 'doc/c2.0.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c2.0.so'\"
- else
- echo shar: Extracting \"'doc/c2.0.so'\" \(2342 characters\)
- sed "s/^X//" >'doc/c2.0.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, The Change Development Cycle
- X.\"
- X.bp
- X.nh 1 "The Change Development Cycle"
- X.LP
- XAs a change to a project is developed using aegis,
- Xit passes through several states.
- XEach state is characterised by different quality requirements,
- Xdifferent sets of applicable aegis commands, and
- Xdifferent responsibilities for the people involved.
- X.LP
- XThese people may be divided into four categories:
- Xdevelopers, reviewers, integrators and administrators.
- XEach has different responsibilities, duties and permissions;
- Xalthough one person may belong to more than one category,
- Xdepending on how a project is administered.
- X.LP
- XThis chapter looks at each of these categories,
- Xby way of an example project undergoing its first four changes.
- XThis example will be examined from the perspective of each category
- Xof people
- Xin the following sections.
- X.LP
- XThere are six hypothetical users in the example:
- Xthe developers are Pat, Jan and Sam;
- Xthe reviewers are Robyn and Jan;
- Xthe integrator is Isa; and
- Xthe administrator is Alex\**.
- X.FS
- XThe names are deliberately gender-neutral.
- XFinding such a name starting with "I" is not easy!
- X.FE
- XThere need not have been this many people involved,
- Xbut it keeps things slightly cleaner for this example.
- X.LP
- XThe project is called "example".
- XIt implements a very simple calculator.
- XMany features important to a quality product are missing,
- Xchecking for divide-by-zero for example.
- XThese have been omitted for brevity.
- X.so c2.1.so
- X.so c2.2.so
- X.so c2.3.so
- X.so c2.4.so
- X.so c2.5.so
- END_OF_FILE
- if test 2342 -ne `wc -c <'doc/c2.0.so'`; then
- echo shar: \"'doc/c2.0.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c2.0.so'
- fi
- if test -f 'doc/c3.0.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c3.0.so'\"
- else
- echo shar: Extracting \"'doc/c3.0.so'\" \(2916 characters\)
- sed "s/^X//" >'doc/c3.0.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, The History Tool"
- X.\"
- X.bp
- X.nh 1 "The History Tool"
- X.LP
- XThe aegis program is decoupled from the history mechanism.
- XThis allows you to use the history mechanism of your choice,
- XSCCS or RCS, for example.
- XYou may even wish to write your own.
- X.LP
- XThe intention of this is that you may use a history mechanism which
- Xsuits your special needs,
- Xor the one that comes free with your flavour of
- X.UX
- Xoperating system.
- X.LP
- XThe aegis program uses the history mechanism for file
- X.I history
- Xand so does not require many of the features of SCCS or RCS.
- XThis simplistic approach can sometimes make the interface to these
- Xutilities look a little strange.
- X.nh 2 "Interfacing"
- X.LP
- XThe history mechanism interface is found in the
- Xproject configuration file called
- X.I "config" ,
- Xrelative to the root of the baseline.
- XIt is a source file and subject to the same controls
- Xas any other source file.
- XThe history fields of the file are described as follows
- X.nh 3 "history_create_command"
- X.LP
- XThis field is used to create a new history.
- XThe command is always executed as the project owner.
- XSubstitutions available for the command string are:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${Input};source file
- X${History};history file
- X.TE
- X.DE
- X.nh 3 "history_get_command"
- X.LP
- XThis field is used to get a file from history.
- XThe command may be executed by developers.
- XSubstitutions available for the command string are:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${History};history file
- X${Edit};edit number
- X${Output};destination file
- X.TE
- X.DE
- X.nh 3 "history_put_command"
- X.LP
- XThis field is used to add a new change to the history.
- XThe command is always executed as the project owner.
- XSubstitutions available for the command string are:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${Input};source file
- X${History};history file
- X.TE
- X.DE
- X.nh 3 "history_query_command"
- X.LP
- XThis field is used to query the topmost edit of a history file.
- XResult to be printed on the standard output.
- XThis command may be executed by developers.
- XSubstitutions available for the command string are:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${History};history file
- X.TE
- X.DE
- X.so c3.1.so
- X.so c3.2.so
- X.so c3.3.so
- END_OF_FILE
- if test 2916 -ne `wc -c <'doc/c3.0.so'`; then
- echo shar: \"'doc/c3.0.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c3.0.so'
- fi
- if test -f 'doc/c3.3.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c3.3.so'\"
- else
- echo shar: Extracting \"'doc/c3.3.so'\" \(3290 characters\)
- sed "s/^X//" >'doc/c3.3.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, The History Tool, Using fhist
- X.\"
- X.bp
- X.nh 2 "Using fhist"
- X.LP
- XThe
- X.I fhist
- Xprogram was written by David I. Bell
- Xand is admirably suited to providing a history mechanism
- Xwith out the "cruft" that SCCS and RCS impose.
- X.nh 3 "history_create_command"
- X.LP
- XThis command is used to create a new project history.
- XThe command is always executed as the project owner.
- X.LP
- XThe following substitutions are available:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${Input};absolute path of the source file
- X${History};absolute path of the history file
- X.TE
- X.DE
- X.LP
- XThe entry in the
- X.I "config"
- Xfile looks like this:
- X.E(
- Xhistory_create_command =
- X "fhist ${b $i} -create -i $i -p ${d $h} -r";
- X.E)
- X.nh 3 "history_get_command"
- X.LP
- XThis command is used to get a specific edit back from history.
- XThe command may be executed by developers.
- X.LP
- XThe following substitutions are available:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${History};absolute path of the history file
- X${Edit};edit number, as given by history_query_command
- X${Output};absolute path of the destination file
- X.TE
- X.DE
- X.LP
- XThe entry in the
- X.I "config"
- Xfile looks like this:
- X.E(
- Xhistory_get_command =
- X "fhist ${b $h} -e '$e' -o $o -p ${d $h}";
- X.E)
- X.LP
- XNote that the destination filename will
- X.I never
- Xlook anything like the history source filename,
- Xso the -p is essential.
- X.nh 3 "history_put_command"
- X.LP
- XThis command is used to add a new "top-most" entry to the
- Xhistory file.
- XThis command is always executed as the project owner.
- X.LP
- XThe following substitutions are available:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${Input};absolute path of source file
- X${History};absolute path of history file
- X.TE
- X.DE
- X.LP
- XThe entry in the
- X.I "config"
- Xfile looks like this:
- X.E(
- Xhistory_put_command =
- X "fhist ${b $i} -u -i $i -p ${d $h} -r";
- X.E)
- X.LP
- XNote that the source file is left in the baseline.
- X.LP
- X.nh 3 "history_query_command"
- X.LP
- XThis command is used to query what the history mechanism calls the top-most
- Xedit of a history file.
- XThe result may be any arbitrary string,
- Xit need not be anything like a number,
- Xjust so long as it uniquely identifies the edit
- Xfor use by the
- X.I history_get_command
- Xat a later date.
- XThe edit number is to be printed on the standard output.
- XThis command may be executed by developers.
- X.LP
- XThe following substitutions are available:
- X.DS
- X.TS
- Xtab(;);
- Xl l.
- X${History};absolute path of the history file
- X.TE
- X.DE
- X.LP
- XThe entry in the
- X.I "config"
- Xfile looks like this:
- X.E(
- Xhistory_query_command =
- X "fhist ${b $h} -l 0 -p ${d $h} -q";
- X.E)
- END_OF_FILE
- if test 3290 -ne `wc -c <'doc/c3.3.so'`; then
- echo shar: \"'doc/c3.3.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c3.3.so'
- fi
- if test -f 'doc/c7.5.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c7.5.so'\"
- else
- echo shar: Extracting \"'doc/c7.5.so'\" \(3106 characters\)
- sed "s/^X//" >'doc/c7.5.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, How Aegis Works, Security
- X.\"
- X.bp
- X.nh 2 "Security"
- X.LP
- XAccess to project data is controlled by the
- X.UX
- Xgroup mechanism.
- XThe group may be selected as suitable for your project,
- Xas may the umask.
- X.LP
- XAll work done by developers (build, difference, etc)
- Xis all with a default group of the project's group,
- Xirrespective of the user's default group.
- XDirectories (when BSD semantics are available) are all created
- Xso that their contents default to the correct group.
- XThis ensures that reviewers and integrators are able to examine the change.
- X.LP
- XOther
- X.UX
- Xusers not in the project's group
- Xmay be excluded, or not, by the appropriate setting of the project umask.
- XThis umask is used by all aegis actions,
- Xassuring appropriate default behaviour.
- X.LP
- XA second aspect of security is to ensure that developers are unable to deliberately deceive aegis.
- XAt develop end,
- Xall files in the development directory are marked read only,
- Xaegis notes the time stamps on the files.
- XShould the files be tampered with at any later date,
- Xaegis will notice.
- XIf a change is returned to the
- X.I "being developed"
- Xstate,
- Xthe files are marked writable again.
- X.nh 2 "Scalability"
- X.LP
- XHow big can a project get before aegis chokes?
- XThere are a huge number of variables in this question.
- X.LP
- XThe most obvious bottleneck is the integrator.
- XAn artificial "average" example:
- XAssume that the average integration takes an hour to build and test.
- XA full-time integrator could be expected to get 7 or 8 of these done per day
- X(this was the observed average on one project the author was involved in).
- XAssume that the average time for a developer to develop a change is two weeks;
- Xa figure recommended by many text books
- Xas "the most you can afford to throw away".
- XThese two assumptions mean that for this "average" project
- Xaegis can cope with 70 to 80 developers,
- Xbefore integrations become a bottleneck.
- X.LP
- XThe more serious bottle neck is the dependency maintenance tool.
- XSeventy developers can churn out a staggering volume of code.
- XIt takes a very long time to wade through the file times and the rules,
- Xjust to find the one or two files which changed.
- XThis can easily push the integrate build time
- Xpast the one hour mark.
- XDevelopers also become very vocal when build times are this long.
- END_OF_FILE
- if test 3106 -ne `wc -c <'doc/c7.5.so'`; then
- echo shar: \"'doc/c7.5.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c7.5.so'
- fi
- if test -f 'doc/c8.1.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c8.1.so'\"
- else
- echo shar: Extracting \"'doc/c8.1.so'\" \(3026 characters\)
- sed "s/^X//" >'doc/c8.1.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, The Difference Tools, Interfacing
- X.\"
- X.nh 2 "Interfacing"
- X.LP
- XThe build commands are accessed from two fields of the
- Xproject configuration file (\fIconfig\fP).
- X.nh 3 "diff_command"
- X.LP
- XThis command is used by
- X.I aed (1)
- Xto produce a difference listing when file in the development directory
- Xwas originally copied from the current version in the baseline\**.
- X.FS
- XOr this is logically the case.
- X.FE
- X.LP
- XAll of the command substitutions described in
- X.I aesub (5)
- Xare available.
- XIn addition, the following substitutions are also available:
- X.IP ${ORiginal}
- XThe absolute path name of a file containing the version originally copied.
- XUsually in the baseline.
- X.IP ${Input}
- XThe absolute path name of the edited version of the file.
- XUsually in the development directory.
- X.IP ${Output}
- XThe absolute path name of the file in which to write the difference listing.
- XUsually in the development directory.
- X.LP
- XAn exit status of 0 means successful,
- Xeven of the files differ (and they usually do).
- XAn exit status which is non-zero means something is wrong.
- X.LP
- XThe non-zero exit status may be used to overload this command
- Xwith extra tests,
- Xsuch as line length limits.
- XThe difference files must be produced in addition to these extra tests.
- X.nh 3 "diff3_command"
- X.LP
- XThis command is used by
- X.I aed (1)
- Xto produce a difference listing when file in the development directory
- Xis out of date compared to the current version in the baseline.
- X.LP
- XAll of the command substitutions described in
- X.I aesub (5)
- Xare available.
- XIn addition, the following substitutions are also available:
- X.IP ${ORiginal}
- XThe absolute path name of a file containing the version originally copied.
- XUsually in a temporary file.
- X.IP ${Most_Recent}
- XThe absolute path name of a file containing the most recent version.
- XUsually in the baseline.
- X.IP ${Input}
- XThe absolute path name of the edited version of the file.
- XUsually in the development directory.
- X.IP ${Output}
- XThe absolute path name of the file in which to write the difference listing.
- XUsually in the development directory.
- X.LP
- XAn exit status of 0 means successful,
- Xeven of the files differ (and they usually do).
- XAn exit status which is non-zero means something is wrong.
- END_OF_FILE
- if test 3026 -ne `wc -c <'doc/c8.1.so'`; then
- echo shar: \"'doc/c8.1.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c8.1.so'
- fi
- if test -f 'doc/c8.2.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/c8.2.so'\"
- else
- echo shar: Extracting \"'doc/c8.2.so'\" \(2724 characters\)
- sed "s/^X//" >'doc/c8.2.so' <<'END_OF_FILE'
- X.\"
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: User Guide, The Difference Tools, Using diff and diff3
- X.\"
- X.bp
- X.nh 2 "Using diff and diff3"
- X.LP
- XThese two tools are available with most flavours of UNIX,
- Xbut often in a very limited form.
- XOne severe limitation is the
- X.I diff3 (1)
- Xcommand,
- Xwhich often can only cope with 200 lines of differences.
- XThe best alternative is to use GNU diff,
- Xwith context differences available,
- Xand a far more robust diff3.
- X.nh 3 "diff_command"
- X.LP
- XSee the earlier
- X.I Interfacing
- Xsection for substitution details.
- X.LP
- XThe entry in the
- X.I config
- Xfile looks like this:
- X.E(
- Xdiff_command =
- X "set +e; diff -c $original $input > $output; test $? -le 1";
- X.E)
- X.LP
- XThis needs a little explanation:
- X.br
- X\(bu
- XThis command is always executed with the shell's
- X.B -e
- Xoption enabled,
- Xcausing the shell to exit on the first error.
- XThe "set +e" turns this off.
- X.br
- X\(bu
- XThe
- X.I diff (1)
- Xcommand exits with a status of 0 if the files are identical,
- Xand a status of 1 if they differ.
- XAny other status means something horrible happened.
- XThe "test" command is used to change this to the exit status aegis expects.
- X.nh 3 "diff3_command"
- X.LP
- XSee the earlier
- X.I Interfacing
- Xsection for substitution details.
- X.LP
- XThe entry in the
- X.I config
- Xfile looks like this:
- X.E(
- Xdiff3_command =
- X "(diff3 -e $MostRecent $original $input | \e
- X sed -e '/^w$$/d' -e '/^q$$/d'; echo '1,$$p' ) | \e
- X ed - $MostRecent > $output";
- X.E)
- X.LP
- XThis needs a lot of explanation.
- X.br
- X\(bu
- XThe
- X.I diff3 (1)
- Xcommand is used to produce an edit script that will
- Xincorporate into $MostRecent,
- Xall the changes between $original and $input.
- X.br
- X\(bu
- XThe
- X.I sed (1)
- Xcommand is used to remove the "write" and "quit" commands
- Xfrom the generated edit script.
- X.br
- X\(bu
- XThe
- X.I ed (1)
- Xcommand is used to apply the generated edit script to
- Xthe $MostRecent file,
- Xand print the results on the standard output,
- Xwhich are redirected into the $output file.
- END_OF_FILE
- if test 2724 -ne `wc -c <'doc/c8.2.so'`; then
- echo shar: \"'doc/c8.2.so'\" unpacked with wrong size!
- fi
- # end of 'doc/c8.2.so'
- fi
- if test -f 'fmtgen/type.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fmtgen/type.h'\"
- else
- echo shar: Extracting \"'fmtgen/type.h'\" \(2345 characters\)
- sed "s/^X//" >'fmtgen/type.h' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: interface definition for fmtgen/type.c
- X */
- X
- X#ifndef TYPE_H
- X#define TYPE_H
- X
- X#include <main.h>
- X#include <lex.h>
- X#include <str.h>
- X
- Xenum type_class_ty
- X{
- X type_class_enum,
- X type_class_integer,
- X type_class_list,
- X type_class_string,
- X type_class_struct,
- X type_class_ref
- X};
- Xtypedef enum type_class_ty type_class_ty;
- X
- X#define TYPE_T \
- X type_class_ty class; \
- X struct type_method_ty *method; \
- X string_ty *name; \
- X int included_flag;
- X
- Xtypedef struct type_ty type_ty;
- Xstruct type_ty
- X{
- X TYPE_T
- X};
- X
- Xtypedef struct type_method_ty type_method_ty;
- Xstruct type_method_ty
- X{
- X void (*gen_include)_((type_ty *, string_ty *));
- X void (*gen_include_declarator)_((type_ty *, string_ty *, int));
- X void (*gen_code)_((type_ty *, string_ty *));
- X void (*gen_code_declarator)_((type_ty *, string_ty *, int));
- X void (*gen_free_declarator)_((type_ty *, string_ty *, int));
- X};
- X
- Xvoid type_gen_include _((type_ty *, string_ty *));
- Xvoid type_gen_include_declarator _((type_ty *, string_ty *, int));
- Xvoid type_gen_code _((type_ty *, string_ty *));
- Xvoid type_gen_code_declarator _((type_ty *, string_ty *, int));
- Xvoid type_gen_free_declarator _((type_ty *, string_ty *, int));
- Xtype_ty *type_create_string _((void));
- Xtype_ty *type_create_integer _((void));
- Xtype_ty *type_create_ref _((string_ty *name, string_ty *ref));
- Xtype_ty *type_create_list _((string_ty *name, type_ty *subtype));
- Xtype_ty *type_create_struct _((string_ty *name, parse_list_ty *contents, int n));
- Xtype_ty *type_create_enum _((string_ty *name, parse_list_ty *plp));
- X
- X#endif /* TYPE_H */
- END_OF_FILE
- if test 2345 -ne `wc -c <'fmtgen/type.h'`; then
- echo shar: \"'fmtgen/type.h'\" unpacked with wrong size!
- fi
- # end of 'fmtgen/type.h'
- fi
- if test -f 'fmtgen/type_integ.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fmtgen/type_integ.c'\"
- else
- echo shar: Extracting \"'fmtgen/type_integ.c'\" \(2173 characters\)
- sed "s/^X//" >'fmtgen/type_integ.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to manipulate integer type
- X */
- X
- X#include <type.h>
- X#include <indent.h>
- X#include <mem.h>
- X
- X
- Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_include_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X char *deref;
- X
- X deref = (is_a_list ? "*" : "");
- X indent_printf("%s\1%s%s;\n", "long", deref, name->str_text);
- X}
- X
- X
- Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_code_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X indent_printf("integer_write("/*)*/);
- X if (is_a_list)
- X indent_printf("(char *)0");
- X else
- X indent_printf("\"%s\"", name->str_text);
- X indent_printf(/*(*/", this->%s);\n", name->str_text);
- X}
- X
- X
- Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_free_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X if (is_a_list)
- X indent_printf(";\n");
- X}
- X
- X
- Xstatic type_method_ty method =
- X{
- X 0, /* gen_include */
- X gen_include_declarator,
- X 0, /* gen_code */
- X gen_code_declarator,
- X gen_free_declarator,
- X};
- X
- X
- Xtype_ty *
- Xtype_create_integer()
- X{
- X type_ty *type;
- X
- X type = (type_ty *)mem_alloc(sizeof(type_ty));
- X type->class = type_class_integer;
- X type->method = &method;
- X type->name = str_from_c("integer");
- X return type;
- X}
- END_OF_FILE
- if test 2173 -ne `wc -c <'fmtgen/type_integ.c'`; then
- echo shar: \"'fmtgen/type_integ.c'\" unpacked with wrong size!
- fi
- # end of 'fmtgen/type_integ.c'
- fi
- if test -f 'fmtgen/type_ref.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fmtgen/type_ref.c'\"
- else
- echo shar: Extracting \"'fmtgen/type_ref.c'\" \(2877 characters\)
- sed "s/^X//" >'fmtgen/type_ref.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to manipulate reference types
- X */
- X
- X#include <type.h>
- X#include <indent.h>
- X#include <mem.h>
- X#include <id.h>
- X#include <error.h>
- X
- X
- Xtypedef struct type_ref_ty type_ref_ty;
- Xstruct type_ref_ty
- X{
- X /* inherited */
- X TYPE_T
- X
- X /* instance variables */
- X string_ty *ref;
- X};
- X
- X
- Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_include_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X type_ref_ty *type2;
- X type_ty *tp;
- X
- X type2 = (type_ref_ty *)type;
- X if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
- X fatal("type \"%s\" vanished", type2->ref->str_text);
- X type_gen_include_declarator(tp, name, is_a_list);
- X}
- X
- X
- Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_code_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X type_ref_ty *type2;
- X type_ty *tp;
- X
- X type2 = (type_ref_ty *)type;
- X if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
- X fatal("type \"%s\" vanished", type2->ref->str_text);
- X type_gen_code_declarator(tp, name, is_a_list);
- X}
- X
- X
- Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_free_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X type_ref_ty *type2;
- X type_ty *tp;
- X
- X type2 = (type_ref_ty *)type;
- X if (!id_search(type2->ref, ID_CLASS_TYPE, (long *)&tp))
- X fatal("type \"%s\" vanished", type2->ref->str_text);
- X type_gen_free_declarator(tp, name, is_a_list);
- X}
- X
- X
- Xstatic type_method_ty method =
- X{
- X 0, /* gen_include */
- X gen_include_declarator,
- X 0, /* gen_code */
- X gen_code_declarator,
- X gen_free_declarator,
- X};
- X
- X
- Xtype_ty *
- Xtype_create_ref(name, ref)
- X string_ty *name;
- X string_ty *ref;
- X{
- X type_ref_ty *type;
- X type_ty *tp;
- X
- X if (id_search(ref, ID_CLASS_TYPE, (long *)&tp))
- X id_assign(name, ID_CLASS_TYPE, (long)tp);
- X type = (type_ref_ty *)mem_alloc(sizeof(type_ref_ty));
- X type->class = type_class_ref;
- X type->method = &method;
- X type->name = str_copy(name);
- X type->ref = str_copy(ref);
- X return (type_ty *)type;
- X}
- END_OF_FILE
- if test 2877 -ne `wc -c <'fmtgen/type_ref.c'`; then
- echo shar: \"'fmtgen/type_ref.c'\" unpacked with wrong size!
- fi
- # end of 'fmtgen/type_ref.c'
- fi
- if test -f 'fmtgen/type_strin.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fmtgen/type_strin.c'\"
- else
- echo shar: Extracting \"'fmtgen/type_strin.c'\" \(2191 characters\)
- sed "s/^X//" >'fmtgen/type_strin.c' <<'END_OF_FILE'
- X/*
- X * aegis - project change supervisor
- X * Copyright (C) 1991, 1992, 1993 Peter Miller.
- X * All rights reserved.
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X * MANIFEST: functions to manipluate string type
- X */
- X
- X#include <type.h>
- X#include <indent.h>
- X#include <mem.h>
- X
- X
- Xstatic void gen_include_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_include_declarator(type, name, is_a_list)
- X type_ty *type;
- X string_ty *name;
- X int is_a_list;
- X{
- X char *deref;
- X
- X deref = (is_a_list ? "*" : "");
- X indent_printf("%s\1%s*%s;\n", "string_ty", deref, name->str_text);
- X}
- X
- X
- Xstatic void gen_code_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_code_declarator(type, name, is_a_list)
- X string_ty *name;
- X type_ty *type;
- X int is_a_list;
- X{
- X indent_printf("string_write("/*)*/);
- X if (is_a_list)
- X indent_printf("(char *)0");
- X else
- X indent_printf("\"%s\"", name->str_text);
- X indent_printf(/*(*/", this->%s);\n", name->str_text);
- X}
- X
- X
- Xstatic void gen_free_declarator _((type_ty *, string_ty *, int));
- X
- Xstatic void
- Xgen_free_declarator(type, name, is_a_list)
- X string_ty *name;
- X type_ty *type;
- X int is_a_list;
- X{
- X indent_printf("str_free(this->%s);\n", name->str_text);
- X}
- X
- X
- Xstatic type_method_ty method =
- X{
- X 0, /* gen_include */
- X gen_include_declarator,
- X 0, /* gen_code */
- X gen_code_declarator,
- X gen_free_declarator,
- X};
- X
- X
- Xtype_ty *
- Xtype_create_string()
- X{
- X type_ty *type;
- X
- X type = (type_ty *)mem_alloc(sizeof(type_ty));
- X type->class = type_class_string;
- X type->method = &method;
- X type->name = str_from_c("string");
- X return type;
- X}
- END_OF_FILE
- if test 2191 -ne `wc -c <'fmtgen/type_strin.c'`; then
- echo shar: \"'fmtgen/type_strin.c'\" unpacked with wrong size!
- fi
- # end of 'fmtgen/type_strin.c'
- fi
- if test -f 'lib/aegis.icon' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/aegis.icon'\"
- else
- echo shar: Extracting \"'lib/aegis.icon'\" \(2695 characters\)
- sed "s/^X//" >'lib/aegis.icon' <<'END_OF_FILE'
- X#define width 64
- X#define height 64
- X
- Xstatic unsigned char bits[] = {
- X0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,
- X0x00,0x00,0xC0,0x07,0xE0,0x03,0x00,0x00,
- X0x00,0x00,0x30,0x50,0x15,0x0E,0x00,0x00,
- X0x00,0x00,0x4E,0x05,0x40,0x71,0x00,0x00,
- X0x00,0x00,0x13,0xA8,0x0A,0xCA,0x00,0x00,
- X0x00,0xC0,0x80,0x02,0xA0,0x10,0x03,0x00,
- X0x00,0x60,0x2A,0x54,0x8B,0xA2,0x06,0x00,
- X0x00,0x98,0x00,0x21,0x52,0x14,0x18,0x00,
- X0x00,0x0C,0xAA,0x44,0x05,0xA1,0x32,0x00,
- X0x00,0x46,0x01,0x28,0xAC,0x14,0x49,0x00,
- X0x00,0x11,0x54,0xA1,0x17,0x22,0xD2,0x00,
- X0x00,0x85,0x02,0xAA,0x46,0x89,0x94,0x00,
- X0x80,0x50,0x54,0xC0,0x0B,0x24,0xA1,0x01,
- X0xC0,0x0A,0x81,0x2A,0xA0,0x92,0x14,0x03,
- X0x20,0x20,0x2A,0x84,0x4A,0x48,0x22,0x06,
- X0x30,0x95,0x41,0x51,0x90,0x92,0x4C,0x05,
- X0x90,0x40,0x15,0x82,0x22,0x44,0x98,0x0C,
- X0x28,0x94,0x42,0x29,0x89,0x22,0x35,0x0A,
- X0x88,0x48,0x0B,0x92,0x24,0x54,0x9C,0x18,
- X0x28,0xAA,0xA3,0x24,0x91,0x82,0x36,0x35,
- X0x44,0xF0,0x09,0x81,0x24,0x54,0x4F,0x12,
- X0x14,0x05,0x52,0x54,0x48,0x89,0x24,0x29,
- X0x22,0xA8,0x88,0x82,0x22,0x52,0x92,0x74,
- X0x4A,0x05,0x44,0x50,0x14,0x09,0x49,0x42,
- X0x02,0xA8,0x92,0x8A,0xA0,0xA4,0x24,0x69,
- X0x56,0x45,0x20,0x21,0x15,0x11,0x91,0x54,
- X0x01,0x10,0x15,0x4A,0x48,0x4A,0x4A,0xA2,
- X0xAA,0x4A,0x42,0x91,0x92,0x90,0x90,0xD4,
- X0x01,0x21,0x09,0x22,0x22,0x45,0x4A,0xA2,
- X0xAB,0x48,0xA4,0x94,0x8A,0x28,0x91,0x94,
- X0x01,0x85,0x48,0x22,0x26,0x41,0x4A,0xD2,
- X0x55,0x28,0x12,0x91,0x4C,0x2A,0x91,0xA4,
- X0x41,0x41,0x49,0x24,0x17,0x49,0x22,0xC9,
- X0x15,0x2A,0x90,0x52,0x4D,0x92,0x94,0xA4,
- X0xA1,0x94,0x42,0xE4,0x27,0x49,0xA2,0xAA,
- X0x17,0x28,0x29,0x09,0x41,0x12,0x49,0xC5,
- X0xA1,0x52,0x84,0x24,0x2A,0xA1,0x84,0xA9,
- X0x12,0x39,0x29,0x49,0x11,0x4A,0x54,0x57,
- X0xCA,0x56,0x42,0x24,0x4A,0x91,0xEA,0xD1,
- X0x12,0x9E,0x28,0x09,0x41,0x24,0xB1,0x6B,
- X0x46,0x25,0x85,0x50,0x2A,0x49,0xCA,0x48,
- X0x24,0x48,0x20,0x25,0x49,0x92,0x24,0x65,
- X0x94,0x22,0x95,0x48,0x22,0x49,0x92,0x34,
- X0x4C,0x14,0x49,0x12,0x49,0x92,0x24,0x29,
- X0x88,0xA0,0x24,0x49,0x92,0x24,0x49,0x1A,
- X0x28,0x15,0x42,0x92,0x24,0x92,0x24,0x15,
- X0x98,0x48,0x09,0x49,0x92,0x24,0xA9,0x0C,
- X0x50,0x22,0x52,0x22,0x49,0x49,0x4A,0x0A,
- X0x20,0x49,0x24,0x89,0x24,0x92,0x90,0x06,
- X0x60,0x92,0x92,0x24,0x91,0x2A,0x55,0x05,
- X0xC0,0x44,0x44,0x49,0x4A,0x54,0x92,0x02,
- X0x80,0x29,0x29,0x27,0x91,0x18,0x49,0x03,
- X0x00,0x41,0x42,0x49,0x4A,0xBA,0xAA,0x01,
- X0x00,0x2B,0xB9,0x27,0xA1,0x5A,0xD2,0x00,
- X0x00,0x96,0xE4,0x91,0x8A,0x9F,0x74,0x00,
- X0x00,0x2C,0xA9,0x4A,0x50,0x4C,0x15,0x00,
- X0x00,0x50,0x22,0xA4,0x4A,0x91,0x1A,0x00,
- X0x00,0xB0,0x94,0x12,0x25,0x55,0x06,0x00,
- X0x00,0xC0,0xA2,0xA4,0x48,0xAA,0x03,0x00,
- X0x00,0x00,0x2B,0x49,0xAA,0xD2,0x00,0x00,
- X0x00,0x00,0x4E,0x92,0x24,0x35,0x00,0x00,
- X0x00,0x00,0xF0,0xAA,0x92,0x1E,0x00,0x00,
- X0x00,0x00,0x80,0x57,0xED,0x01,0x00,0x00,
- X0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,
- X};
- END_OF_FILE
- if test 2695 -ne `wc -c <'lib/aegis.icon'`; then
- echo shar: \"'lib/aegis.icon'\" unpacked with wrong size!
- fi
- # end of 'lib/aegis.icon'
- fi
- if test -f 'lib/aegis.mask' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/aegis.mask'\"
- else
- echo shar: Extracting \"'lib/aegis.mask'\" \(3278 characters\)
- sed "s/^X//" >'lib/aegis.mask' <<'END_OF_FILE'
- X#define aegis_width 64
- X#define aegis_height 64
- Xstatic char aegis_bits[] = {
- X 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
- X 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00,
- X 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- X 0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00,
- X 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff,
- X 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
- X 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
- X 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07,
- X 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
- X 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
- X 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
- X 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- X 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
- X 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x3f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
- X 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
- X 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03,
- X 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff,
- X 0xff, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
- X 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0xff, 0xff,
- X 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00,
- X 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff,
- X 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- X 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff,
- X 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00,
- X 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00};
- END_OF_FILE
- if test 3278 -ne `wc -c <'lib/aegis.mask'`; then
- echo shar: \"'lib/aegis.mask'\" unpacked with wrong size!
- fi
- # end of 'lib/aegis.mask'
- fi
- if test -f 'lib/cshrc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/cshrc'\"
- else
- echo shar: Extracting \"'lib/cshrc'\" \(2195 characters\)
- sed "s/^X//" >'lib/cshrc' <<'END_OF_FILE'
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1991, 1992, 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: csh user config for aegis
- X#
- Xsetenv AEGIS $HOME/lib/aegis
- Xalias aea 'aegis -a \!* -v'
- Xalias aeb 'aegis -b \!* -v'
- Xalias aeca 'aegis -ca \!* -v'
- Xalias aecd 'cd `aegis -cd \!* -v`'
- Xalias aecp 'aegis -cp \!* -v'
- Xalias aecpu 'aegis -cpu \!* -v'
- Xalias aed 'aegis -diff \!* -v'
- Xalias aedb 'aegis -db \!* -v'
- Xalias aedbu 'aegis -dbu \!* -v'
- Xalias aede 'aegis -de \!* -v'
- Xalias aedeu 'aegis -deu \!* -v'
- Xalias aedless 'less `find . -name "*,D" -print | sort`'
- Xalias aedmore 'more `find . -name "*,D" -print | sort`'
- Xalias aega 'aegis -ga \!* -v'
- Xalias aeib 'aegis -ib \!* -v'
- Xalias aeibu 'aegis -ibu \!* -v'
- Xalias aeifail 'aegis -ifail \!* -v'
- Xalias aeipass 'aegis -ipass \!* -v'
- Xalias ael 'aegis -l \!* -v'
- Xalias aemv 'aegis -mv \!* -v'
- Xalias aena 'aegis -na \!* -v'
- Xalias aenc 'aegis -nc \!* -v'
- Xalias aend 'aegis -nd \!* -v'
- Xalias aenf 'aegis -nf \!* -v'
- Xalias aenfu 'aegis -nfu \!* -v'
- Xalias aeni 'aegis -ni \!* -v'
- Xalias aenpr 'aegis -npr \!* -v'
- Xalias aenrls 'aegis -nrls \!* -v'
- Xalias aenrv 'aegis -nrv \!* -v'
- Xalias aent 'aegis -nt \!* -v'
- Xalias aepa 'aegis -pa \!* -v'
- Xalias aera 'aegis -ra \!* -v'
- Xalias aerd 'aegis -rd \!* -v'
- Xalias aerfail 'aegis -rfail \!* -v'
- Xalias aeri 'aegis -ri \!* -v'
- Xalias aerm 'aegis -rm \!* -v'
- Xalias aermu 'aegis -rmu \!* -v'
- Xalias aerpass 'aegis -rpass \!* -v'
- Xalias aermpr 'aegis -rmpr \!* -v'
- Xalias aerrv 'aegis -rrv \!* -v'
- Xalias aet 'aegis -t \!* -v'
- END_OF_FILE
- if test 2195 -ne `wc -c <'lib/cshrc'`; then
- echo shar: \"'lib/cshrc'\" unpacked with wrong size!
- fi
- # end of 'lib/cshrc'
- fi
- if test -f 'lib/profile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/profile'\"
- else
- echo shar: Extracting \"'lib/profile'\" \(2130 characters\)
- sed "s/^X//" >'lib/profile' <<'END_OF_FILE'
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1991, 1992, 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: Bourne shell user config for aegis
- X#
- XAEGIS=$HOME/lib/aegis
- Xexport AEGIS
- Xaea()
- X{
- X aegis -a $* -v
- X}
- Xaeb()
- X{
- X aegis -b $* -v
- X}
- Xaeca()
- X{
- X aegis -ca $* -v
- X}
- Xaecd()
- X{
- X cd `aegis -cd $* -v`
- X}
- Xaecp()
- X{
- X aegis -cp $* -v
- X}
- Xaecpu()
- X{
- X aegis -cpu $* -v
- X}
- Xaed()
- X{
- X aegis -diff $* -v
- X}
- Xaedb()
- X{
- X aegis -db $* -v
- X}
- Xaedbu()
- X{
- X aegis -dbu $* -v
- X}
- Xaede()
- X{
- X aegis -de $* -v
- X}
- Xaedeu()
- X{
- X aegis -deu $* -v
- X}
- Xaedless()
- X{
- X less `find . -name "*,D" -print | sort`
- X}
- Xaedmore()
- X{
- X more `find . -name "*,D" -print | sort`
- X}
- Xaega()
- X{
- X aegis -ga $* -v
- X}
- Xaeib()
- X{
- X aegis -ib $* -v
- X}
- Xaeibu()
- X{
- X aegis -ibu $* -v
- X}
- Xaeifail()
- X{
- X aegis -ifail $* -v
- X}
- Xaeipass()
- X{
- X aegis -ipass $* -v
- X}
- Xael()
- X{
- X aegis -l $* -v
- X}
- Xaemv()
- X{
- X aegis -mv $* -v
- X}
- Xaena()
- X{
- X aegis -na $* -v
- X}
- Xaenc()
- X{
- X aegis -nc $* -v
- X}
- Xaend()
- X{
- X aegis -nd $* -v
- X}
- Xaenf()
- X{
- X aegis -nf $* -v
- X}
- Xaenfu()
- X{
- X aegis -nfu $* -v
- X}
- Xaeni()
- X{
- X aegis -ni $* -v
- X}
- Xaenpr()
- X{
- X aegis -npr $* -v
- X}
- Xaenrls()
- X{
- X aegis -nrls $* -v
- X}
- Xaenrv()
- X{
- X aegis -nrv $* -v
- X}
- Xaent()
- X{
- X aegis -nt $* -v
- X}
- Xaepa()
- X{
- X aegis -pa $* -v
- X}
- Xaera()
- X{
- X aegis -ra $* -v
- X}
- Xaerd()
- X{
- X aegis -rd $* -v
- X}
- Xaerfail()
- X{
- X aegis -rfail $* -v
- X}
- Xaeri()
- X{
- X aegis -ri $* -v
- X}
- Xaerm()
- X{
- X aegis -rm $* -v
- X}
- Xaermu()
- X{
- X aegis -rmu $* -v
- X}
- Xaerpass()
- X{
- X aegis -rpass $* -v
- X}
- Xaermpr()
- X{
- X aegis -rmpr $* -v
- X}
- Xaerrv()
- X{
- X aegis -rrv $* -v
- X}
- Xaet()
- X{
- X aegis -t $* -v
- X}
- END_OF_FILE
- if test 2130 -ne `wc -c <'lib/profile'`; then
- echo shar: \"'lib/profile'\" unpacked with wrong size!
- fi
- # end of 'lib/profile'
- fi
- if test -f 'man1/aeb.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aeb.1'\"
- else
- echo shar: Extracting \"'man1/aeb.1'\" \(2569 characters\)
- sed "s/^X//" >'man1/aeb.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Build' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Build" 1 \*(N)
- X.SH NAME
- X\*(n) -Build \- build a project
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Build
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Build
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Build
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Build
- Xcommand is used to
- Xbuild a project.
- XThe project configuration file is consulted for the appropriate build command,
- Xand that command is executed
- X(see
- X.IR aepconf (5)
- Xfor more information.)
- XOutput of the command is automatically logged to the
- X.I \*(n).log
- Xfile at the root of the development directory tree.
- XThe build command will be executed with its current directory being
- Xthe root of the development directory,
- Xirrespective of there the
- X.I "\*(n) -Build"
- Xcommand was executed.
- X.PP
- XIf the change is in the
- X.I "being integrated"
- Xstate,
- Xreferences to the development directory, above,
- Xshould be read as the integration directory.
- XIntegration build commands are executed with the user and group
- Xset to the project's owing user and group.
- XThat is,
- Xit is not necessary for an integrator to log in as someone else,
- Xthe project account for instance,
- Xin order to do an integration.
- X.so o_bld_lk.so
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aeb '\*(n) -b \e!* -v'
- Xsh$ aeb(){\*(n) -b $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- Xthe change is not in one of the
- X.I "being developed"
- Xor
- X.I "being integrated"
- Xstates.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2569 -ne `wc -c <'man1/aeb.1'`; then
- echo shar: \"'man1/aeb.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aeb.1'
- fi
- if test -f 'man1/aecp.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aecp.1'\"
- else
- echo shar: Extracting \"'man1/aecp.1'\" \(2856 characters\)
- sed "s/^X//" >'man1/aecp.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for aegis -CoPy_file
- X.\"
- X.so z_name.so
- X.TH "\*(n) -CoPy_file" 1 \*(N)
- X.SH NAME
- X\*(n) -CoPy_file \- copy a file into a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -CoPy_file
- X[
- X.IR option ...
- X]
- X.IR filename ...
- X.br
- X.B \*(n)
- X.B -CoPy_file
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -CoPy_file
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -CoPy_file
- Xcommand is used to
- Xcopy a file into a change.
- X.so z_intuit.so
- X.PP
- XThe named files will be copied from the baseline into
- Xthe development directory,
- Xand added to the list of files in the change.
- X.PP
- XThis command will cancel any build or test registrations,
- Xbecause adding another file logically invalidates them.
- XIf the
- X.I config
- Xfile was added,
- Xany diff registration will also be cancelled.
- X.PP
- XThis command may be used to copy tests into a change,
- Xnot just source files.
- XTests are treated just like any other source file,
- Xand are subject to the same process.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.TP 8n
- X\fB-Delta\fP \fInumber\fP
- X.br
- XThis option may be used to specify a particular
- Xdelta in the project's history to copy the file from,
- Xrather than the most current version.
- XIt is an error if the delta specified does not exist.
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.TP 8n
- X\fB-Output\fP \fIfilename\fP
- X.br
- XThis option may be used to specify an output file
- Xof a file being copied from the baseline.
- XOnly one baseline file may be named when this option is used.
- XThe file name "-" is understood to mean the standard output.
- X.so o_overw.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aecp '\*(n) -cp \e!* -v'
- Xsh$ aecp(){\*(n) -cp $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the
- X.I "being developed"
- Xstate.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- Xthe file is already in the change and the
- X.B -OverWrite
- Xoption is not specified.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2856 -ne `wc -c <'man1/aecp.1'`; then
- echo shar: \"'man1/aecp.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aecp.1'
- fi
- if test -f 'man1/aecpu.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aecpu.1'\"
- else
- echo shar: Extracting \"'man1/aecpu.1'\" \(2300 characters\)
- sed "s/^X//" >'man1/aecpu.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -CoPy_file_Undo' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -CoPy_file_Undo" 1 \*(N)
- X.SH NAME
- X\*(n) -CoPy_file_Undo \- reverse action of aecp
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -CoPy_file_Undo
- X[
- X.IR option ...
- X]
- X.IR filename ...
- X.br
- X.B \*(n)
- X.B -CoPy_file_Undo
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -CoPy_file_Undo
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -CoPy_file_Undo
- Xcommand is used to
- Xremove a file previously copied into a change.
- X.so z_intuit.so
- X.PP
- XThe named files will be removed from the list of files in the change.
- XThe file is deleted from the development directory
- Xunless the
- X.B -Keep
- Xoption is specified.
- XThe
- X.B -Keep
- Xoption should be used with great care,
- Xas you can confuse tools such as
- X.IR make (1)
- Xby leaving these files in place.
- X.PP
- XThis command will cancel any build or test registrations,
- Xbecause deleting a file logically invalidates them.
- XIf the
- X.I config
- Xfile was deleted,
- Xany diff registration will also be cancelled.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aecpu '\*(n) -cpu \e!* -v'
- Xsh$ aecpu(){\*(n) -cpu $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the
- X.I "being developed"
- Xstate.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2300 -ne `wc -c <'man1/aecpu.1'`; then
- echo shar: \"'man1/aecpu.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aecpu.1'
- fi
- if test -f 'man1/aed.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aed.1'\"
- else
- echo shar: Extracting \"'man1/aed.1'\" \(3274 characters\)
- sed "s/^X//" >'man1/aed.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -DIFFerence' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -DIFFerence" 1 \*(N)
- X.SH NAME
- X\*(n) -DIFFerence \- find differences between development directory and baseline
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -DIFFerence
- X[
- X.IR filename ...
- X]
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -DIFFerence
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -DIFFerence
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -DIFFerence
- Xcommand is used to
- Xfind differences between the development directory and the baseline.
- XThe differences will be in files with a "\f(CW,D\fP" suffix.
- XThe command used to perform the differences is in the
- Xproject
- X.I config
- Xfile (see
- X.IR aepconf (5)
- Xfor more information).
- X.PP
- XIf no files are named on the command line,
- Xall files in the change will be differenced.
- X.so z_intuit.so
- X.SH CONFLICT RESOLUTION
- XIf the version of a file in the change is not the same
- Xas the verion of the file in the baseline,
- Xit is out-of-date;
- Xsome other change has altered the file while this change was being developed.
- X.PP
- XWhen a difference is requested for an out-of-date file,
- Xa merge is performed
- Xbetween the common ancestor,
- Xthe verion in the baseline,
- Xand the version in the development directory.
- XThe command used to perform the merge is in the
- Xproject
- X.I config
- Xfile (see
- X.IR aepconf (5)
- Xfor more information).
- X.PP
- XAfter the merge is performed
- Xthe version of the file will be changed to be the current version,
- Xand a new build will be required.
- X.PP
- XThe difference output in the \fI,D\fP files
- Xcontains the result of the merge.
- XYou should edit them,
- Xto make sure the automatic merge has produced sensible results,
- Xand then rename them to be the corresponding source file.
- X.PP
- XThis merge process works most of the time.
- XUsually two changes to two logically separate areas of functionality
- Xwill alter two logically separate parts of any files they may
- Xhave in common.
- XThere are pathological cases where this merge process is spectacularly useless,
- Xbut these are surprizingly rare in practice.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_anticip.so
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aed '\*(n) -diff \e!* -v'
- Xsh$ aed(){\*(n) -diff $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the
- X.I "'being developed'"
- Xstate.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 3274 -ne `wc -c <'man1/aed.1'`; then
- echo shar: \"'man1/aed.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aed.1'
- fi
- if test -f 'man1/aedb.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aedb.1'\"
- else
- echo shar: Extracting \"'man1/aedb.1'\" \(2477 characters\)
- sed "s/^X//" >'man1/aedb.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Develop_Begin' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Develop_Begin" 1 \*(N)
- X.SH NAME
- X\*(n) -Develop_Begin \- begin development of a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Develop_Begin
- X.I change-number
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Develop_Begin
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Develop_Begin
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Develop_Begin
- Xcommand is used to
- Xcommence development of a change.
- X.PP
- XThe development directory for the change will be created automatically;
- Xbelow the directory specified in the default_\%development_\%directory field of
- X.IR aeuconf (5),
- Xor if not set
- Xbelow the directory specified in the default_\%development_\%directory field of
- X.IR aepattr (5),
- Xor if not set
- Xbelow the current user's home directory.
- XIt is rare to need to know the exact pathname of the development directory,
- Xas the
- X.IR aecd (1)
- Xcommand can take you there at any time.
- X.PP
- XSuccessful execution of this command will move the
- Xspecified change from the
- X.I "awaiting development"
- Xstate to the
- X.I "being developed"
- Xstate.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_dir.so
- X.so o_help.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aedb '\*(n) -db \e!* -v'
- Xsh$ aedb(){\*(n) -db $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change does not exist.
- X.br
- XIt is an error if
- Xthe change is not in the
- X.I "awaiting development"
- Xstate.
- X.br
- XIt is an error if
- Xthe current user is not a developer of the specified project.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2477 -ne `wc -c <'man1/aedb.1'`; then
- echo shar: \"'man1/aedb.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aedb.1'
- fi
- if test -f 'man1/aede.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aede.1'\"
- else
- echo shar: Extracting \"'man1/aede.1'\" \(2675 characters\)
- sed "s/^X//" >'man1/aede.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Develop_End' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Develop_End" 1 \*(N)
- X.SH NAME
- X\*(n) -Develop_End \- complete development of a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Develop_End
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Develop_End
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Develop_End
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Develop_End
- Xcommand is used to
- Xnotify \*(n) of the completion of the development of a change.
- X.PP
- XSuccessful execution of the command advances the change
- Xfrom the 'being_developed' state
- Xto the 'being_reviewed' state.
- X.PP
- XThe ownership of files in the development directory
- Xis changed to the project owner and group,
- Xand the files changed to be read-only.
- XThis prevents accidental alterations of the change's files
- Xbetween development and integration.
- X.PP
- XThe change is no longer considered assigned to the current user.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aede '\*(n) -de \e!* -v'
- Xsh$ aede(){\*(n) -de $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- XThe change is not in the 'being_developed' state.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Build'"
- Xcommand since a change file was last edited.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -DIFFerence'"
- Xcommand since a change file was last edited.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Test'"
- Xcommand since a change file was last edited.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Test -BaseLine'"
- Xcommand since a change file was last edited.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2675 -ne `wc -c <'man1/aede.1'`; then
- echo shar: \"'man1/aede.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aede.1'
- fi
- if test -f 'man1/aeib.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aeib.1'\"
- else
- echo shar: Extracting \"'man1/aeib.1'\" \(3312 characters\)
- sed "s/^X//" >'man1/aeib.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Integrate_Begin' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Integrate_Begin" 1 \*(N)
- X.SH NAME
- X\*(n) -Integrate_Begin \- begin integrating a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Integrate_Begin
- X.I change-number
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Begin
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Begin
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Integrate_Begin
- Xcommand is used to
- Xbegin the integration of a change into the baseline of a project.
- X.PP
- XThe change will advance
- Xfrom the 'awaiting_integration' state
- Xto the 'being_integrated' state.
- X.PP
- XA copy of the baseline is created in an
- X.IR "integration directory"
- Xand the the files of the change are added to the integration directory;
- Xtime stamps on the files are preserved.
- XThe
- X.I "'\*(n) -Change_Directory'"
- Xcommand may be used to locate this directory.
- XThe change will be assigned to the current user.
- X.PP
- XThe change will be assigned a delta number.
- XDelta numbers are incremented once for each
- X.I "\*(n) -Integrate_Begin"
- Xcommand for the project.
- XIf an integration is subsequently aborted with either the
- X.I "\*(n) -Integrate_Begin_Undo"
- Xor
- X.I "\*(n) -Integrate_FAIL"
- Xcommand,
- Xthe delta number will not be re-used.
- X.PP
- XIt is not possible to choose the integration directory,
- Xas there are many constraints upon it,
- Xincluding the fact that it must be
- Xon the same device as the baseline directory,
- Xand that many UNIX implementations don't allow renaming
- Xdirectories up and down the trees.
- XThe integration directory will be in the project directory,
- Xand named for the delta number.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_min.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aeib '\*(n) -ib \e!* -v'
- Xsh$ aeib(){\*(n) -ib $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'awaiting_integration' state.
- X.br
- XIt is an error if
- Xthe current user is not an integrator of the project.
- X.br
- XIt is an error if
- Xthere is an integration in progress for the project.
- X.br
- XIt is an error if
- Xthe current user developed the change and the project is configured to
- Xdisallow developers to integrate their own changes (default).
- X.br
- XIt is an error if
- Xthe current user reviewed the change and the project is configured to
- Xdisallow reviewers to integrate their such changes (default).
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 3312 -ne `wc -c <'man1/aeib.1'`; then
- echo shar: \"'man1/aeib.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aeib.1'
- fi
- if test -f 'man1/aeif.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aeif.1'\"
- else
- echo shar: Extracting \"'man1/aeif.1'\" \(2282 characters\)
- sed "s/^X//" >'man1/aeif.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Integrate_Fail' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Integrate_Fail" 1 \*(N)
- X.SH NAME
- X\*(n) -Integrate_Fail \- fail a change integration
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Integrate_Fail
- X.I reason-file
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Fail
- X.B -Edit
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Fail
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Fail
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Integrate_Fail
- Xcommand is used to
- Xinform \*(n) that a change has failed integration.
- X.PP
- XThe change will be returned
- Xfrom the 'being_integrated' state
- Xto the 'being_developed' state.
- XThe change will cease to be assigned to the current user,
- Xand will be reassigned to the originating developer.
- XThe integration directory will be deleted.
- X.PP
- XThe reviewer and the developer will be notified by mail.
- XSee the integrate_fail_notify_command in
- X.IR aepconf (5)
- Xfor more information.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_edit.so
- X.so o_help.so
- X.so o_keep.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aeifail '\*(n) -ifail \e!* -v'
- Xsh$ aeifail(){\*(n) -ifail $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'being_integrated' state.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2282 -ne `wc -c <'man1/aeif.1'`; then
- echo shar: \"'man1/aeif.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aeif.1'
- fi
- if test -f 'man1/aeip.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aeip.1'\"
- else
- echo shar: Extracting \"'man1/aeip.1'\" \(2378 characters\)
- sed "s/^X//" >'man1/aeip.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Integrate_Pass' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Integrate_Pass" 1 \*(N)
- X.SH NAME
- X\*(n) -Integrate_Pass \- pass a change integration
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Integrate_Pass
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Pass
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Integrate_Pass
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Integrate_Pass
- Xcommand is used to
- Xnotify \*(n) that a change has passed integration.
- X.PP
- XThe change is advanced
- Xfrom the
- X.I "being integrated"
- Xstate to the
- X.I "completed"
- Xstate.
- XThe integration directory is renamed as the baseline directory,
- Xand the baseline directory is deleted.
- XThe change is no longer assigned to the current user.
- X.so o_bld_lk.so
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aeipass '\*(n) -ipass \e!* -v'
- Xsh$ aeipass(){\*(n) -ipass $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- XThe change is not in the
- X.I "being integrated"
- Xstate.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Build'"
- Xcommand for the integration.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Test'"
- Xcommand for the integration.
- X.br
- XIt is an error if
- Xthere has been no successful
- X.I "'\*(n) -Test -BaseLine'"
- Xcommand for the integration.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2378 -ne `wc -c <'man1/aeip.1'`; then
- echo shar: \"'man1/aeip.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aeip.1'
- fi
- if test -f 'man1/ael.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/ael.1'\"
- else
- echo shar: Extracting \"'man1/ael.1'\" \(3023 characters\)
- sed "s/^X//" >'man1/ael.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -List' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -List" 1 \*(N)
- X.SH NAME
- X\*(n) -List \- list (possibly) interesting things
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -List
- X[
- X.IR option ...
- X]
- X.I list-name
- X.br
- X.B \*(n)
- X.B -List
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -List
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -List
- Xcommand is used to
- Xlist information.
- XThere are a number of possible
- X.IR list-name s,
- Xas follows (abbreviations as for command line options):
- X.TP 8n
- XAdministrators
- X.br
- XList the administrators of a project.
- X.TP 8n
- XChange_Details
- X.br
- XList full information about a change
- Xin large format.
- X.TP 8n
- XChange_Files
- X.br
- XList all files in a change.
- X.TP 8n
- XChange_History
- X.br
- XList the history of a change.
- X.TP 8n
- XChanges
- X.br
- XList the changes of a project.
- X.TP 8n
- XDefault_Change
- X.br
- XList the default change for the current user.
- X.TP 8n
- XDefault_Project
- X.br
- XList the default project for the current user.
- X.TP 8n
- XDevelopers
- X.br
- XList the developers of a project.
- X.TP 8n
- XIntegrators
- X.br
- XList the integrators of a project.
- X.TP 8n
- XList_List
- X.br
- XList all lists available.
- X.TP 8n
- XLocks
- X.br
- XList all currently active locks.
- X.TP 8n
- XOutstanding_Changes
- X.br
- XList all changes not yet completed.
- X.TP 8n
- XAll_Outstanding_Changes
- X.br
- XList all changes not yet completed, for all projects.
- X.TP 8n
- XProject_Files
- X.br
- XList all files in the baseline of a project.
- X.TP 8n
- XProject_History
- X.br
- XList the integration history of a project.
- X.TP 8n
- XProjects
- X.br
- XList all projects.
- X.TP 8n
- XReviewers
- X.br
- XList the reviewers of a project.
- X.TP 8n
- XUsers_Changes
- X.br
- XList of changes owned by the current user.
- X.TP 8n
- XVersion
- X.br
- XList version of a project or change.
- X.PP
- XMost of these lists are available from other \*(n) functions.
- XMany \*(n) functions provide more specific lists.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_page.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_unforma.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias ael '\*(n) -l \e!* -v'
- Xsh$ ael(){\*(n) -l $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe list name given is unknown.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 3023 -ne `wc -c <'man1/ael.1'`; then
- echo shar: \"'man1/ael.1'\" unpacked with wrong size!
- fi
- # end of 'man1/ael.1'
- fi
- if test -f 'man1/aemv.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aemv.1'\"
- else
- echo shar: Extracting \"'man1/aemv.1'\" \(2135 characters\)
- sed "s/^X//" >'man1/aemv.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for aegis -MoVe_file
- X.\"
- X.so z_name.so
- X.TH "\*(n) -MoVe_file" 1 \*(N)
- X.SH NAME
- X\*(n) -MoVe_file \- copy a file into a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -MoVe_file
- X[
- X.IR option ...
- X]
- X.I old-name
- X.I new-name
- X.br
- X.B \*(n)
- X.B -MoVe_file
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -MoVe_file
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -MoVe_file
- Xcommand is used to
- Xcopy a file into a change,
- Xwhile changing its name at the same time.
- X.so z_intuit.so
- X.PP
- XThe named files will be copied from the baseline (\fIold-file\fP) into
- Xthe development directory (\fInew-file\fP),
- Xand added to the list of files in the change.
- X.PP
- XThis command will cancel any build or test registrations,
- Xbecause adding another file logically invalidates them.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aemv '\*(n) -mv \e!* -v'
- Xsh$ aemv(){\*(n) -mv $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the
- X.I "being developed"
- Xstate.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- Xeither file is already in the change.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2135 -ne `wc -c <'man1/aemv.1'`; then
- echo shar: \"'man1/aemv.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aemv.1'
- fi
- if test -f 'man1/aenc.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aenc.1'\"
- else
- echo shar: Extracting \"'man1/aenc.1'\" \(2128 characters\)
- sed "s/^X//" >'man1/aenc.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -New_Change' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -New_Change" 1 \*(N)
- X.SH NAME
- X\*(n) -New_Change \- add a new change to a project
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -New_Change
- X.I attr-file
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_Change
- X.B -Edit
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_Change
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_Change
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -New_Change
- Xcommand is used to
- Xadd a new change to a project.
- XSee
- X.IR aecattr (5)
- Xfor information on the format of the
- X.IR attr-file .
- X.PP
- XThe change is created in the 'awaiting_development' state.
- XThe change is not assigned to any user.
- XThe change has no development directory.
- X.PP
- XIt is not possible to choose your own change number.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_edit.so
- X.so o_help.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aenc '\*(n) -nc \e!* -v'
- Xsh$ aenc(){\*(n) -nc $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe current user is not an administrator of the project.
- X(In some cases it is possible for developers of a project to create changes,
- Xsee
- X.IR aepattr (5)
- Xfor more information.)
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2128 -ne `wc -c <'man1/aenc.1'`; then
- echo shar: \"'man1/aenc.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aenc.1'
- fi
- if test -f 'man1/aenf.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aenf.1'\"
- else
- echo shar: Extracting \"'man1/aenf.1'\" \(2726 characters\)
- sed "s/^X//" >'man1/aenf.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -New_File' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -New_File" 1 \*(N)
- X.SH NAME
- X\*(n) -New_File \- add new files to a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -New_File
- X.IR file-name ...
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_File
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_File
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -New_File
- Xcommand is used to
- Xadd new files to a change.
- X.so z_intuit.so
- X.PP
- XThe named files will be
- Xadded to the list of files in the change.
- XFor each file named,
- Xa new file is created in the development directory,
- Xif it does not exist already.
- XThe
- X.I config
- Xfile will be searched for a template for the new file.
- XIf a template is found,
- Xthe new file will be initialized to the template,
- Xotherwise it will be created empty.
- XIf the file already exists,
- Xit will not be altered.
- XSee
- X.IR aepconf (5)
- Xfor more information.
- X.SH OPTIONS
- XThe following options are understood
- X.TP 8n
- X.B -Build
- X.br
- XThis option may be used to specify that the file is constructed
- Xduring a build (often only an integrate build),
- Xso that history of it may be kept.
- XThis is useful for generating patch files,
- Xwhere a history of generated files is important.
- XFiles created in this way may not be copied into a change,
- Xthough they may be deleted.
- XAvoid using files of this type,
- Xif at all possible.
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_nolog.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aenf '\*(n) -nf \e!* -v'
- Xsh$ aenf(){\*(n) -nf $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'being_developed' state.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- Xthe file is already part of the change.
- X.br
- XIt is an error if
- Xthe file is already part of the baseline.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2726 -ne `wc -c <'man1/aenf.1'`; then
- echo shar: \"'man1/aenf.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aenf.1'
- fi
- if test -f 'man1/aenfu.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aenfu.1'\"
- else
- echo shar: Extracting \"'man1/aenfu.1'\" \(2157 characters\)
- sed "s/^X//" >'man1/aenfu.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -New_File_Undo' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -New_File_Undo" 1 \*(N)
- X.SH NAME
- X\*(n) -New_File_Undo \- remove new files form a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -New_File_Undo
- X.IR file-name ...
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_File_Undo
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_File_Undo
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -New_File_Undo
- Xcommand is used to
- Xremove new files from a change
- X(reverse the actions of the '\*(n) -New_File' command).
- X.so z_intuit.so
- X.PP
- XThe file is removed from the list of files in the change.
- XThe file is deleted from the development directory,
- Xunless the
- X.B -Keep
- Xoption is used.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_help.so
- X.so o_keep.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aenfu '\*(n) -nfu \e!$ -v'
- Xsh$ aenfu(){\*(n) -nfu $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'being_developed' state.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.br
- XIt is an error if
- Xthe file is not in the change.
- X.br
- XIt is an error if
- Xthe file was not added to the change with the '\*(n) -New_File' command.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2157 -ne `wc -c <'man1/aenfu.1'`; then
- echo shar: \"'man1/aenfu.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aenfu.1'
- fi
- if test -f 'man1/aenpr.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aenpr.1'\"
- else
- echo shar: Extracting \"'man1/aenpr.1'\" \(2901 characters\)
- sed "s/^X//" >'man1/aenpr.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -New_PRoject' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -New_PRoject" 1 \*(N)
- X.SH NAME
- X\*(n) -New_PRoject \- create a new project
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -New_PRoject
- X.I project-name
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_PRoject
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_PRoject
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -New_PRoject
- Xcommand is used to
- Xcreate a new project.
- X.PP
- XThe project directory,
- Xunder which the project baseline and history and
- Xstate and change data are kept,
- Xwill be created at this time.
- XIf the
- X.B -DIRectory
- Xoption is not given,
- Xthe project directory will be created in the
- Xdirectory specified by the default_\%project_\%directory field of
- X.IR aeuconf (5),
- Xor if not set
- Xin current user's home directory;
- Xin either case with the same name as the project.
- X.PP
- XThe project is created with the current user
- Xand group as the owning user and group.
- XThe current user is an administrator for the project.
- XThe project has no developers, reviewers, integrators or other administrators.
- X.PP
- XThe project pointer will be added to the first element of the search path,
- Xor
- X.I /usr/local/lib/aegis
- Xif no path is set.
- XIf this is inappropriate, use the
- X.B -LIBrary
- Xoption to explicitly set the desired location.
- XSee the
- X.B -LIBrary
- Xoption for more information.
- X.PP
- XThe project major version defaults to 1,
- Xand the minor version defaults to 0,
- Xunless modified by the version options,
- Xbelow.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_dir.so
- X.so o_help.so
- X.so o_lib.so
- X.so o_list.so
- X.so o_major.so
- X.so o_minor.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aenpr '\*(n) -npr \e!* -v'
- Xsh$ aenpr(){\*(n) -npr $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe project name already exists.
- X.br
- XIt is an error if
- Xthe project directory already exists.
- X.br
- XIt is an error if
- Xthe current user does not have sufficient permissions to create
- Xthe directory specified with the
- X.B -DIRectory
- Xoption.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2901 -ne `wc -c <'man1/aenpr.1'`; then
- echo shar: \"'man1/aenpr.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aenpr.1'
- fi
- if test -f 'man1/aent.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aent.1'\"
- else
- echo shar: Extracting \"'man1/aent.1'\" \(2601 characters\)
- sed "s/^X//" >'man1/aent.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -New_Test' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -New_Test" 1 \*(N)
- X.SH NAME
- X\*(n) -New_Test \- add a new test to a change
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -New_Test
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_Test
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -New_Test
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -New_Test
- Xcommand is used to
- Xadd a new test to a change.
- XA new file is created in the development directory.
- XThe
- X.I config
- Xfile will be searched for a template for the new file.
- XIf a template is found,
- Xthe new file will be initialized to the template,
- Xotherwise it will be created empty.
- XSee
- X.IR aepconf (5)
- Xfor more information.
- X.PP
- XNew tests default to automatic unless otherwise specified.
- X.PP
- XIt is not possible to choose your own test number,
- Xor test file name.
- XAll tests within a project are numbered uniquely.
- XTest files are named as "\fItest/XX/tXXXX[am].sh\fP",
- Xwhere
- X.I XX
- Xis the first 2 digits of the test number,
- X.I XXXX
- Xis the whole test number, and
- X.I [am]
- Xis \f(CWa\fP for automatic tests
- Xand \f(CWm\fP for manual tests.
- X.PP
- XTests may be modified in future by adding them to a change
- Xwith the
- X.IR aecp (1)
- Xcommand.
- XTests are treated just like any other source file,
- Xand are subject to the same process.
- X.SH OPTIONS
- XThe following options are understood;
- X.so o_auto.so
- X.so o_change.so
- X.so o_help.so
- X.so o_list.so
- X.so o_manual.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aent '\*(n) -nt \e!* -v'
- Xsh$ aent(){\*(n) -nt $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'being_developed' state.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2601 -ne `wc -c <'man1/aent.1'`; then
- echo shar: \"'man1/aent.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aent.1'
- fi
- if test -f 'man1/aerf.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aerf.1'\"
- else
- echo shar: Extracting \"'man1/aerf.1'\" \(2569 characters\)
- sed "s/^X//" >'man1/aerf.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for 'aegis -Review_FAIL' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Review_FAIL" 1 \*(N)
- X.SH NAME
- X\*(n) -Review_FAIL \- fail a change review
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Review_FAIL
- X.I reason-file
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Review_FAIL
- X.B -Edit
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Review_FAIL
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Review_FAIL
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Review_FAIL
- Xcommand is used to
- Xinform \*(n) that a change has failed review.
- X.PP
- XThe change will be returned
- Xfrom the 'being_reviewed' state
- Xto the 'being_developed' state.
- XThe change will cease to be assigned to the current user,
- Xand will be reassigned to the originating developer.
- X.PP
- XThe developer will be notified by mail.
- XSee the integrate_fail_notify_command in
- X.IR aepconf (5)
- Xfor more information.
- X.PP
- XThe
- X.I reason-file
- Xwill contain a description of why the change was failed.
- XThe file is in plain text.
- XIt is recommended that you only use newline to terminate paragraphs,
- Xas with will result in better formatting in the various listings.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_change.so
- X.so o_edit.so
- X.so o_help.so
- X.so o_list.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aerfail '\*(n) -rfail \e!* -v'
- Xsh$ aerfail(){\*(n) -rfail $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in the 'being_reviewed' state.
- X.br
- XIt is an error if
- Xthe current user is not a reviewer for the project.
- X.br
- XIt is an error if
- Xthe current user developed the change and the project is configured to
- Xdisallow developers to review their own changes (default).
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2569 -ne `wc -c <'man1/aerf.1'`; then
- echo shar: \"'man1/aerf.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aerf.1'
- fi
- if test -f 'man1/aet.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man1/aet.1'\"
- else
- echo shar: Extracting \"'man1/aet.1'\" \(2223 characters\)
- sed "s/^X//" >'man1/aet.1' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: manual entry for the 'aegis -Test' command
- X.\"
- X.so z_name.so
- X.TH "\*(n) -Test" 1 \*(N)
- X.SH NAME
- X\*(n) -Test \- run tests
- X.SH SYNOPSIS
- X.B \*(n)
- X.B -Test
- X[
- X.IR file-name ...
- X][
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Test
- X.B -INDependent
- X[
- X.IR file-name ...
- X][
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Test
- X.B -List
- X[
- X.IR option ...
- X]
- X.br
- X.B \*(n)
- X.B -Test
- X.B -Help
- X.SH DESCRIPTION
- XThe
- X.I \*(n)
- X.I -Test
- Xcommand is used to
- Xrun tests.
- XIf no files are named, all relevant tests are run.
- XBy default both automatic and manual tests are run.
- X.so z_intuit.so
- X.PP
- XTests are executed by
- Xthe Bourne shell.
- XThe current directory will be the top of the appropriate directory tree.
- XIf tests require temporary files, they should create them in
- X.IR /tmp ,
- Xas a test cannot expect to have write permission
- Xin the current directory.
- X.SH OPTIONS
- XThe following options are understood:
- X.so o_auto.so
- X.so o_baselin.so
- X.so o_change.so
- X.so o_devdir.so
- X.so o_help.so
- X.so o_list.so
- X.so o_manual.so
- X.so o_project.so
- X.so o_terse.so
- X.so o_verbose.so
- X.so o__rules.so
- X.SH RECOMMENDED ALIAS
- XThe recommended alias for this command is
- X.nf
- X.ta 8n 16n
- Xcsh% alias aet '\*(n) -t \e!* -v'
- Xsh$ aet(){\*(n) -t $* -v}
- X.fi
- X.SH ERRORS
- XIt is an error if
- Xthe change is not in one of the 'being_developed' or 'being_integrated' states.
- X.br
- XIt is an error if
- Xthe change is not assigned to the current user.
- X.so z_exit.so
- X.so z_cr.so
- END_OF_FILE
- if test 2223 -ne `wc -c <'man1/aet.1'`; then
- echo shar: \"'man1/aet.1'\" unpacked with wrong size!
- fi
- # end of 'man1/aet.1'
- fi
- if test -f 'man5/aecattr.so' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man5/aecattr.so'\"
- else
- echo shar: Extracting \"'man5/aecattr.so'\" \(2972 characters\)
- sed "s/^X//" >'man5/aecattr.so' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: description of aegis change attribute file format
- X.\"
- X.TP 8n
- Xdescription = string;
- X.br
- XThis field contains a detailed description of the change.
- X.TP 8n
- Xbrief_description = string;
- X.br
- XThis field contains a brief description of the change.
- X.TP 8n
- Xcause = ( ... );
- X.br
- XThis field describes the cause which motivated the change.
- X.RS 8n
- X.TP 8n
- Xexternal_bug
- X.br
- XThe change was created in response to
- Xa bug report
- Xfrom outside the development team.
- XThis repairs existing functionality.
- X.TP 8n
- Xexternal_enhancement
- X.br
- XThe change was created in response to
- Xan enhancement request
- Xfrom outside the development team.
- XThis adds new functionality.
- X.TP 8n
- Xexternal_improvement
- X.br
- XThe change was created in response to
- Xan improvement request
- Xfrom outside the development team.
- XThis improves existing functionality.
- X.TP 8n
- Xinternal_bug
- X.br
- XThe change was created in response to
- Xa bug report
- Xfrom inside the development team.
- XThis repairs existing functionality.
- X.TP 8n
- Xinternal_enhancement
- X.br
- XThe change was created in response to
- Xan enhancement request
- Xfrom inside the development team.
- XThis adds new functionality.
- X.TP 8n
- Xinternal_improvement
- X.br
- XThe change was created in response to
- Xan improvement request
- Xfrom inside the development team.
- XThis improves existing functionality.
- X.TP 8n
- Xchain
- X.br
- XThis cause is where you have a fix to fix a fix;
- Xtracking these is an interesting quality metric.
- X.RE
- X.TP 8n
- Xtest_exempt = boolean;
- X.br
- XThis field is true if it is not necessary
- Xto test the change.
- XIt is, in general, desirable to test all changes,
- Xwhether new functionality or a bug fix.
- XThis is, however, a project management issue.
- X.TP 8n
- Xtest_baseline_exempt = boolean;
- X.br
- XThis field is true if it is not necessary
- Xto test the change against the baseline before it is changed.
- XThe test of the baseline is required to fail;
- Xthis is to establish that the test has isolated the bug,
- Xand that the change has fixed that isolated bug.
- X.TP 8n
- Xregression_test_exempt = boolean;
- X.br
- XThis field is true if it is not necessary
- Xto perform a full regression test on the change.
- XIf absent, defaults to true for all causes except improvements.
- END_OF_FILE
- if test 2972 -ne `wc -c <'man5/aecattr.so'`; then
- echo shar: \"'man5/aecattr.so'\" unpacked with wrong size!
- fi
- # end of 'man5/aecattr.so'
- fi
- if test -f 'man5/aegis.5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man5/aegis.5'\"
- else
- echo shar: Extracting \"'man5/aegis.5'\" \(2717 characters\)
- sed "s/^X//" >'man5/aegis.5' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: description of aegis file format general structure
- X.\"
- X.so z_name.so
- X.TH \*(n) 5 \*(N)
- X.SH NAME
- X\*(n) - file format
- X.SH DESCRIPTION
- XThe files used by the
- X.I \*(n)
- Xprogram all have the same format.
- XSome of the files used by \*(n) are created and maintained by humans,
- Xand some are created an maintained by \*(n) itself.
- XThe various manual entries say which is which.
- X.SH LEXICAL CONSIDERATIONS
- XNames are any C identifier.
- XComments are C-style comments.
- XNumbers are decimal, octal or hexadecimal, as for C constants.
- XStrings are C-style strings.
- XWhitespace (spaces, tabs and newlines) are ignored
- Xexcept in strings or as they serve to separate tokens.
- X.SH GRAMMAR
- XThe format of all \*(n) files is described by a
- X.I yacc (1)
- Xgrammar.
- X.eB
- X%%
- Xfile
- X : field_list
- X ;
- X.eE
- XA file contains a field list.
- X.eB
- Xfield_list
- X : /* empty */
- X | field_list field
- X ;
- X.eE
- XA field list is zero or more fields.
- X.eB
- Xfield
- X : NAME '=' value ';'
- X ;
- X.eE
- XA field is set by giving a name and a value.
- X.eB
- Xvalue
- X : NAME
- X | INTEGER
- X | STRING
- X | structure
- X | list
- X ;
- X.eE
- XA value may be a member of an enumeration (NAME),
- Xor an integer constant,
- Xor a literal string.
- XMore complex values may be constructed from these simple values.
- X.eB
- Xstructure
- X : '{' field_list '}'
- X ;
- X.eE
- XA structure is a grouped list of fields.
- X.eB
- Xlist
- X : '[' list_body ']'
- X ;
- Xlist_body
- X : /* empty */
- X | value_list
- X | value_list ','
- X ;
- Xvalue_list
- X : value
- X | value_list ',' value
- X.eE
- XA list is a sequential list of values separated by commas.
- XIt may be empty,
- Xor it may have a trailing comma.
- X.SH SEMANTICS
- XThe types of the values must match those in the definition
- Xof the file.
- XSee the relevant man pages for more information.
- X.PP
- XFiles which are rewritten by
- X.B \*(n)
- Xwill lose any comments placed in them.
- XWhen time fields are emitted by
- X.B \*(n)
- Xthey are usually followed by a human readable date in a comment.
- X.so z_cr.so
- END_OF_FILE
- if test 2717 -ne `wc -c <'man5/aegis.5'`; then
- echo shar: \"'man5/aegis.5'\" unpacked with wrong size!
- fi
- # end of 'man5/aegis.5'
- fi
- if test -f 'man5/aeuconf.5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man5/aeuconf.5'\"
- else
- echo shar: Extracting \"'man5/aeuconf.5'\" \(2100 characters\)
- sed "s/^X//" >'man5/aeuconf.5' <<'END_OF_FILE'
- X'\" t
- X.\" aegis - project change supervisor
- X.\" Copyright (C) 1991, 1992, 1993 Peter Miller.
- X.\" All rights reserved.
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.\" MANIFEST: description of aegis user config file format
- X.\"
- X.so z_name.so
- X.TH aeuconf 5 \*(n)
- X.SH NAME
- Xaeuconf - user configuration file
- X.SH SYNOPSIS
- X\fI$HOME\f(CW/.\*(n)rc\fR
- X.SH DESCRIPTION
- XA user configuration file
- Xis used to hold user defaults.
- XThis file is created and edited by the user.
- XThis file is only ever read by \*(n).
- X.SH CONTENTS
- XThe file contains the following fields:
- X.TP 8n
- Xdefault_development_directory = string;
- X.br
- XThe pathname of where to place new development directories.
- XThe pathname may be relative,
- Xin which case it is relative to \fI$HOME\fP.
- XThe default is the field of the same name in the project attributes,
- Xor \fI$HOME\fP neither is set.
- X.TP 8n
- Xdefault_project_directory = string;
- X.br
- XThe pathname of where to place new project directories.
- XThe pathname may be relative.
- XIf this path is relative,
- Xit is relative to \fI$HOME\fP.
- XThe default is \fI$HOME\fP.
- X.TP 8n
- Xdefault_project_name = string;
- X.br
- XThe name of a project.
- X.TP 8n
- Xdefault_change_number = integer;
- X.br
- XThe number of a change.
- X.PP
- XPlease note that the
- X.I default_project_name
- Xfield and the
- X.I default_change_number
- Xfield
- Xare unrelated.
- XSpecifying both does not mean that single change within that single project,
- Xthey have nothing to do with each other.
- X.so z_cr.so
- END_OF_FILE
- if test 2100 -ne `wc -c <'man5/aeuconf.5'`; then
- echo shar: \"'man5/aeuconf.5'\" unpacked with wrong size!
- fi
- # end of 'man5/aeuconf.5'
- fi
- if test -f 'test/00/t0001a.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/00/t0001a.sh'\"
- else
- echo shar: Extracting \"'test/00/t0001a.sh'\" \(2820 characters\)
- sed "s/^X//" >'test/00/t0001a.sh' <<'END_OF_FILE'
- X#! /bin/sh
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1991, 1992, 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: test -Help for each function
- X#
- X
- Xunset AEGIS_PROJECT
- Xunset AEGIS_CHANGE
- Xumask 022
- X
- XUSER=${USER:-${LOGNAME:-`whoami`}}
- X
- Xfail()
- X{
- X echo FAILED test of -Help for each function 1>&2
- X exit 1
- X}
- Xpass()
- X{
- X exit 0
- X}
- Xtrap "fail" 1 2 3 15
- X
- X#
- X# make sure the various variations have -help implemented
- X#
- XPAGER=cat
- Xexport PAGER
- X./bin/aegis -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newpro -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -proatt -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newcha -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newdev -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -devbeg -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -new_file -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newt -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -build -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -diff -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -test -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -dev_end -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newrev -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -review_fail -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -review_pass -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -newint -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -intbeg -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -cd -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -integrate_begin_undo -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -intfail -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -intpass -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -list -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X./bin/aegis -cp -help > /dev/null
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# the things tested in this test, worked
- X#
- Xpass
- END_OF_FILE
- if test 2820 -ne `wc -c <'test/00/t0001a.sh'`; then
- echo shar: \"'test/00/t0001a.sh'\" unpacked with wrong size!
- fi
- # end of 'test/00/t0001a.sh'
- fi
- if test -f 'test/00/t0013a.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/00/t0013a.sh'\"
- else
- echo shar: Extracting \"'test/00/t0013a.sh'\" \(2158 characters\)
- sed "s/^X//" >'test/00/t0013a.sh' <<'END_OF_FILE'
- X#! /bin/sh
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: Test the -New_Change_Undo functionality
- X#
- X
- Xunset AEGIS_PROJECT
- Xunset AEGIS_CHANGE
- Xumask 022
- X
- XUSER=${USER:-${LOGNAME:-`whoami`}}
- X
- Xwork=${AEGIS_TMP:-/tmp}/$$
- XPAGER=cat
- Xexport PAGER
- X
- Xhere=`pwd`
- Xif test $? -ne 0 ; then exit 1; fi
- X
- Xfail()
- X{
- X set +x
- X cd $here
- X echo FAILED test of -New_Change_Undo functionality 1>&2
- X find $work -type d -user $USER -exec chmod u+w {} \;
- X rm -rf $work
- X exit 1
- X}
- Xpass()
- X{
- X set +x
- X cd $here
- X echo PASSED 1>&2
- X find $work -type d -user $USER -exec chmod u+w {} \;
- X rm -rf $work
- X exit 0
- X}
- Xtrap "fail" 1 2 3 15
- X
- Xmkdir $work
- Xif test $? -ne 0 ; then exit 1; fi
- Xcd $work
- Xif test $? -ne 0 ; then fail; fi
- X
- Xworklib=$work/lib
- Xworkproj=$work/foo
- X
- X#
- X# create the project
- X#
- X$here/bin/aegis -npr foo -lib $worklib -dir $workproj
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# create a change
- X#
- Xcat > ncf << 'fubar'
- Xbrief_description = "hello";
- Xcause = internal_enhancement;
- Xfubar
- Xif test $? -ne 0 ; then fail; fi
- X$here/bin/aegis -nc ncf -lib $worklib -p foo
- Xif test $? -ne 0 ; then fail; fi
- Xif test ! -f $workproj/info/change/0/001; then fail; fi
- X
- X#
- X# remove the change
- X#
- X$here/bin/aegis -ncu -lib $worklib -p foo -c 1
- Xif test $? -ne 0 ; then fail; fi
- Xif test -f $workproj/info/change/0/001; then fail; fi
- X
- X#
- X# Only definite negatives are possible.
- X# The functionality exercised by this test appears to work,
- X# no other guarantees are made.
- X#
- Xpass
- END_OF_FILE
- if test 2158 -ne `wc -c <'test/00/t0013a.sh'`; then
- echo shar: \"'test/00/t0013a.sh'\" unpacked with wrong size!
- fi
- # end of 'test/00/t0013a.sh'
- fi
- if test -f 'test/00/t0014a.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/00/t0014a.sh'\"
- else
- echo shar: Extracting \"'test/00/t0014a.sh'\" \(2521 characters\)
- sed "s/^X//" >'test/00/t0014a.sh' <<'END_OF_FILE'
- X#! /bin/sh
- X#
- X# aegis - project change supervisor
- X# Copyright (C) 1993 Peter Miller.
- X# All rights reserved.
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X# MANIFEST: Test the -Develop_Begin_Undo functionality
- X#
- X
- Xunset AEGIS_PROJECT
- Xunset AEGIS_CHANGE
- Xumask 022
- X
- XUSER=${USER:-${LOGNAME:-`whoami`}}
- X
- Xwork=${AEGIS_TMP:-/tmp}/$$
- XPAGER=cat
- Xexport PAGER
- X
- Xhere=`pwd`
- Xif test $? -ne 0 ; then exit 1; fi
- X
- Xfail()
- X{
- X set +x
- X cd $here
- X echo FAILED test of -Develop_Begin_Undo functionality 1>&2
- X find $work -type d -user $USER -exec chmod u+w {} \;
- X rm -rf $work
- X exit 1
- X}
- Xpass()
- X{
- X set +x
- X cd $here
- X echo PASSED 1>&2
- X find $work -type d -user $USER -exec chmod u+w {} \;
- X rm -rf $work
- X exit 0
- X}
- Xtrap "fail" 1 2 3 15
- X
- Xmkdir $work
- Xif test $? -ne 0 ; then exit 1; fi
- Xcd $work
- Xif test $? -ne 0 ; then fail; fi
- X
- Xworklib=$work/lib
- Xworkproj=$work/foo
- Xworkchan=$work/bar
- X
- X#
- X# new project
- X#
- X$here/bin/aegis -npr foo -lib $worklib -dir $workproj
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# new change
- X#
- Xcat > ncf << 'fubar'
- Xbrief_description = "please hit me";
- Xcause = internal_enhancement;
- Xfubar
- Xif test $? -ne 0 ; then fail; fi
- X$here/bin/aegis -nc ncf -lib $worklib -p foo
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# make current user a developer
- X#
- X$here/bin/aegis -nd $USER -lib $worklib -p foo
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# develop begin
- X#
- X$here/bin/aegis -db -lib $worklib -p foo -c 1 -dir $workchan
- Xif test $? -ne 0 ; then fail; fi
- Xif test ! -d $workchan ; then fail ; fi
- X
- X#
- X# add a file just to spice it up a little
- X#
- X$here/bin/aegis -nf $workchan/snot -lib $worklib -p foo -c 1
- Xif test $? -ne 0 ; then fail; fi
- X
- X#
- X# develop begin undo
- X#
- X$here/bin/aegis -dbu -lib $worklib -p foo -c 1
- Xif test $? -ne 0 ; then fail; fi
- Xif test -d $workchan ; then fail ; fi
- X
- X#
- X# Only definite negatives are possible.
- X# The functionality exercised by this test appears to work,
- X# no other guarantees are made.
- X#
- Xpass
- END_OF_FILE
- if test 2521 -ne `wc -c <'test/00/t0014a.sh'`; then
- echo shar: \"'test/00/t0014a.sh'\" unpacked with wrong size!
- fi
- # end of 'test/00/t0014a.sh'
- fi
- echo shar: End of archive 3 \(of 19\).
- cp /dev/null ark3isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 19 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-