rcsrevs
|
The rcsrevs script tells you all the revision numbers that are
stored in an
RCS (20.14)
file.
For instance: |
|---|
% rcsrevs myprog
1.3
1.2
1.1
1.2.1.1
What good is that?
Here are two examples.
rcsgrep -a (27.10)
uses rcsrevs when it's searching all revisions of an RCS file.
If you want to print all revisions, run a program across all revisions
to do some kind of check, and so on, rcsrevs can give you the
revision numbers to use in a
loop (9.12, 9.11).
The shell loop below gets all the revision numbers and stores them in
the revnum shell variable one by one; it runs
co -p (20.14)
to send each revision to the
pr -h (43.7)
command for formatting with a custom header;
the output of the commands in the loop goes to the printer.
`...`
>
done|lpr |
$ for revnum in `rcsrevs somefile`
> do
> co -p -r$revnum somefile | pr -h "somefile revision #$revnum"
> done | lpr |
|---|
You'd like to compare the two most recent revisions of several RCS files
to see what the last change was.
But the revision numbers in each file are different.
(One file's latest revision might be 2.4, another file could be at 1.7,
etc.)
Use
head (25.20)
to grab the two highest revision numbers from the rcsrevs output,
tail -r (25.15)
to reverse the order (put the older revision number first),
use sed to make the revision numbers into a pair of -r options
(like -r1.6 -r1.7),
then run rcsdiff to do the comparisons and
email (1.33)
them to bigboss:
?
|
% foreach file (*.cc *.h Makefile)
? set revs=`rcsrevs $f | head -2 | tail -r | sed 's/^/-r/'`
? rcsdiff $revs $f | mail -s "changes to $file" bigboss
? end |
|---|
rcsrevs accepts rlog options to control what revisions are
shown.
So rcsrevs -r2 somefile would list only revisions 2.0 and above,
rcsrevs -sbeta would list the revisions in beta state,
and so on.