The AC package is an internal set of scripts for managing the acedb source code. The Acedb code is under CVS management. For ease of use and safety several scripts have been written to control the cvs functions. The CVS system is only accessible on the local system to users in the 'acedb' user-group. For consistency reasons, users are being discouraged from using cvs commands directly.

Operations on individual source files

All AC commands have a command line argument <file(s)>. It allows to perform the same action on multiple files. There are various ways is to specify the filename and its subdirectory, e.g. :

aco w2/graphxt.c graph.h graphsubs.c

This will check out w2/graphxt.c wh/graph.h and w2/graphsubs.c. The subdirectory is optional. The script will first try to find the find the file in the current directory or look for it across all subdirectories (might take slightly longer).

aco - checkout

aco <file(s)> checks out a file for editing.
First grabs the latest version from the repository, then registers the user as an editor and gives permission to edit the files locally.

aci - checkin

aci <file(s)> checks in a file to the repository after editing.
The user is prompted for log information about the nature of the changes. The environment variable $CVSEDITOR specifies an editor to be used to enter the change-log text.
The modified user's copy is comitted to the repository and edit permissions are removed form the user's working directory. Other users editing this file at the same time are notified by mail about this action.

NOTE: Just in case the file was created in a DOS/Windows environment, all redundant PC-style control characters are removed prior to the "commit" action.

acu - unedit

acu <file(s)> removes edit permissions on a file.
The user's local working copy is reverted back to the latest repository version and his edit permissions are revoked. Any modifications since checkout are therefor lost.

acg - get latest

acg <file(s)> update/get new version of file from repository.
If the file already exists locally, the user's working copy is brought up to the date with the repository version. The user is warned if the file is being edited locally at the time.
If the file doesn't yet exist locally (another user has just recently created the file) the subdirectory in which it is supposed to appear has to be specified. Warnings are given if such file doesn't exist in the repository.

acr - create

acr <file(s)> adds the new file to the repository.
The file is expected to already exist locally. A new repository entry is committed for the file with a default log message saying "initial revision". The file is then set to read-only premissions locally. And from then on, aco has to be used to check out a editable copy of this file.

NOTE: Just in case the file was created in a DOS/Windows environment, all redundant PC-style control characters are removed prior to the "commit" action.

acx - remove

acx <file(s)> removes the file locally and from the repository.
The user is queried for safety, and after a positive answer the file is removed in the user's working copy and then marked deleted from the repository.

NOTE: The files doesn't realy disappear. All its old changelogs will continue to reside in the so-called attic of the repository, but it won't show up in the active copy. acetree will remove a local copy of a dead file in another user's working copy to reflect that change throughout all copies of the source tree.

acd - diff

acd <file(s)> reports the differences between the users local working copy of the file(s) and the repository version.

acm - move/rename

acm <newpath> <file(s)> moves/renames the the file
This command behaves similarly to the UNIX command 'mv', but the new path is specified first. This is slightly unusual, but it brings this command in line with all the others in term of the variable-length <file(s)> parameter list. If a file is to be renamed, only one filename is allowed in this parameter-list.

acm <wnew> file1.c w2/file2.c - finds which subdir file1.c is in and moves it to wnew, then moves w2/file2.c to wnew
acm <wnew/newfile.c> oldfile.c - finds the subdir of oldfile.c, then moves it to wnew and renames it. If no new directory is specified, oldfile.c is renamed within its present directory.

aclog - log

aclog -d"timeformat" <file> will report all log reports for this file during the timeformat. If no timeformat then all log reports are given.

Example :
aprs -d">yesterday" call.c
gives all log reports since yesterday for file call.c

aprs -d"<10/19/97" call.c
gives all log reports before 19th October 1997 for file call.c

acw - set watch

acw <file> sets a watch on the files.
Watches will cause the system to send out an email to the watcher if anything is being done about that file (e.g. a file is being edited, unedited, checked in etc.)
Although it does introduce some kind of ownership over a file it might be useful.
Any user who is trying to edit (check out) a watched file will be informed of who is watching it. Although the user is given the choice to abort the attempt to edit, it doens't impede anyone's right to edit a file anyway.

acwx - remove watch

acx <file> removes the watch on the files.
This command will fail, if you are not currently watching the file.