| Version 1.9 Build 1556
|
|
Next: alog
Up: Code management
Previous: ai
Subsections
ao
AIPS++ source code checkout utility.
ao [
options for co] file1 [file2 ...]
ao checks out source files from the AIPS++ master RCS repository
into the current directory. It is a front-end for the RCS co
command.
ao assumes that you are working within a private directory tree which
shadows that of the AIPS++ master source code tree, see mktree (p).
The filename arguments specified to ao must be simple filenames without
path except that an initial RCS/ will be explicitly stripped off, as
will any RCS ,v suffix. ao determines the corresponding master
directory from the current working directory.
ao checks out the source file by executing $MSTRETCD/ao_master,
where $AIPSMSTR is expected to be NFS mounted from the
AIPS++ master host (see §1.1.4). Programmers who have an
account on the AIPS++ master host, aips2.nrao.edu, may instead use a
related utility, rao (p), which invokes ao remotely on the master
host via ssh.
ao does not itself interpret any options but does recognize several
which it passes to co.
- -I | -l | -r# | -u#
- These options are passed directly to co, check the manual page
for co for an explanation. Note that no version number may be
specified for the -l option, and that a -r option with revision
number may not be used together with -l. All other co
options are defeated.
Note that the -u option may be used to unlock a checked out file
without replacement.
- The RCS co command must have write permission on the version
file in order to check it out of the master repository. The file ownership
is defined by the owner of $MSTRETCD/ao_master (aips2adm).
This script must have the setuid bit set (see chmod).
- While mktree (p) creates RCS symbolic links in the programmer
directory hierarchy, these are not used by ao. Their main function
is to allow gmake (p) to check out the makefile for a directory
automatically. They also allow RCS utilities such as alog (p)
and rlog to be applied readily to the slave RCS repository.
ao does not make use of these RCS symbolic links but deals directly
with the AIPS++ master repository by specifying absolute pathnames.
- Checkouts may be disabled by creating a file $MSTRETCD/ai_disable.
If this file contains any text it will be printed as an informative
message.
Status return values
0
: success
1
: initialization error, no checkout
2
: checkout failure
The command
ao -l Foo.cc
would check out Foo.cc with an exclusive lock. Then
ao -u Foo.cc
would remove the lock without checking the file in or deleting the working
copy. The command
ao -l RCS/*,v
would check out everything in the directory (that is, assuming that RCS
is a symlink into the slave directory, all files currently in the slave
directory will be checked out of the master).
- If the network fails part-way through a checkout, or if the checkout is
aborted before completion, an RCS semaphore file with a name of the
form ,*, may be left behind in the master RCS repository. The
presence of this empty file will cause subsequent checkins or checkouts to
report an ``in use'' error. If the not deleted manually by using the
ae (p) command, or ai -ae, the semaphore file will
eventually be cleaned out by exhale (p) which deletes all such files
which are more than one day old.
- Since ao operates over the internet the file transfers are
subject to network corruption. On a several occasions, usually when the
network response was unusually poor, truncation of the last few characters
of a file has been observed. A utility, xrcs (p), is available to
verify the internal consistency of RCS version files.
- ao invokes RCS commands directly on the master RCS repository,
which may be NFS mounted from a machine on the other side of a
slow internet link. A checkout involves reading the RCS version file from
the master, inserting the locker's name, then writing it back. These file
transfers are handled more efficiently by rao (p).
- ao requires that the host operating system support setuid shell
scripts. Some operating systems, most notably Linux and Digital
UNIX, do not support setuid shell scripts for security reasons.
The manual page for co(1), the RCS checkout command.
The unix manual page for chmod(1).
AIPS++ variable names (§1.2).
ae (p), AIPS++ RCS semaphore file deletion utility.
ai (p), AIPS++ code checkin utility.
alog (p), AIPS++ change log reporting utility.
amv (p), AIPS++ code rename utility.
au (p), AIPS++ code update utility.
ax (p), AIPS++ code deletion utility.
mktree (p), create AIPS++ directory hierarchy.
rao (p), invoke ao remotely via ssh(1).
Original: 1992/04/28 by Mark Calabretta, ATNF.
Next: alog
Up: Code management
Previous: ai
  Contents
  Index
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc.,
Washington, D.C.
Return to AIPS++ Home Page
2006-10-15