Trailing-Edge
-
PDP-10 Archives
-
bb-j710b-bm_tops20_v41_tools
-
tools/alu/aludoc.mem
There are 6 other files named aludoc.mem in the archive. Click here to see a list.
+---------------+
! d i g i t a l ! I N T E R O F F I C E M E M O R A N D U M
+---------------+
DATE: 9 July 1981
TO: TOPS20 LIST
FROM: Dan Murphy
DEPT: LCG S.E.
EXT: 6356
LOC: MR1-2/E37
DOC #: DLM-79-002-00-U
FILE: SNARK:<MURPHY.ALU>ALUDOC
SUBJ: SOURCE CONTROL
- - - - - - - - - - - - - - - -
ALU is now formally installed as the interlock mechanism for
monitor sources. It serves to prevent simultaneous editing
of files by two or more people. In addition, it provides
information on who has reserved a file at any particular
time, and keeps a log of new versions.
ALU does not limit access to the source directories in any
way. Any user is allowed to reserve files.
To use ALU, the first thing you must do is to 'take' the
file SNARK:<MURPHY.ALU>ALUDEF.CMD or incorporate it into
your LOGIN.CMD file. It defines logical names for the
active monitor, exec, and utilities directories. Yes, we
all have to use the same logical names for these
directories.
The basic cycle is:
1. Reserve (interlock) the file, getting a private
copy.
2. Edit the private copy; ensure that it is
reasonably correct.
3. Release the file (automatically copying the
edited private copy back onto the regular
directory).
1. To reserve the file, run ALU:ALU and use the GET or QGET
command. E.g.,
ALU>GET (file) M50:TTYSRV
ALU then asks you
(Till when?)
Your answer to this is strictly information for anyone else
who may try to get the file while you have it. Your
Page 2
reservation does not automatically expire at the time you
say or at any other time. If you use the QGET command, this
question is not asked and the answer is defaulted to "SOON".
By default, GET and QGET do not copy the source into your
connected directory. If you want a copy immediately, use
the /COPY switch after the filename. Otherwise, you will
get the file from the library directory when you edit it the
first time. Note that you cannot be connected to the
library directory - ALU will detect this and complain.
2. You then edit your private copy. As with current
practice, you should add a comment at the very beginning of
the file to say what you did. You need not add an edit line
however; ALU will do that when it puts the file back into
the library directory.
3. When you are ready to have your file put back into the
library, run ALU and use the REPLACE command. E.g.,
ALU>REPLACE (file) M50:TTYSRV
If you did NOT put a comment at the beginning of the file,
ALU will ask:
(Why?) <comment>
In either case, the comment will go into the ALU log file
along with other information about the transaction. ALU
will then run REDIT, comparing your source with the source
on the library. The changes files goes into a subdirectory
of the library called <library.ALU>. ALU will copy your
private version back into the library directory and put a
new edit/update line at the beginning of the file. Nothing
is removed or replaced from the file. The private source
will then be deleted from your connected directory.
A log file of new sources put on the library directory is
maintained as <library.ALU>FILUPD.HST.
There are other commands in ALU which you can discover with
"?", including one to CANCEL your reservation (without
putting anything back on the library) if you decide to give
up. Of course, a GET will tell you if someone already has
reserved the file, and a REPLACE will not put a file back
unless you had the reservation. There are also STATUS and
INFORMATION commands which will tell you what files are
currently reserved.
ALU uses various little bookkeeping files; they are kept in
a subdirectory of the library directory (e.g.
<4.1.MONITOR.ALU>) so as to be out of the way.
MISCELLANEOUS
ALU has project-specific information built into it, so each
project has its own version. Therefore, the ALU.EXE on SYS:
simply runs ALU:ALU.EXE, assuming that ALU: is defined
Page 3
appropriately for each project.
ALU looks for a rescan line, so you can say to the EXEC,
e.g.,
@ALU QGET M50:TTYSRV
or
@ALU REPLACE M50:TTYSRV
Let me know of any bugs, problems, or suggestions.
- Dan Murphy