Open Source Development with CVS: Errata
Last modified: Sunday, 13 August 2000
This page lists known errors in Open Source Development With
CVS. Most errors are present in the first printing only, having
been corrected in the second; when an error is present in both, that
is noted. The errors are divided into two categories:
- Potentially Significant errors are ones that might actually
confuse or mislead a reader.
- Probably Insignificant errors
are harmless misprints and such.
Potentially Significant Errors
-
(third printing (PDF)) p. 152 in Chapter 4:
The last line of the paragraph "Using Keyword Expansion" refers to
chapter 11 for a complete list, but the list is actually in chapter 10.
-
(first and second printings) p. xvi, URL for Stallman's essay:
The link for Richard Stallman's essay has changed from
http://www.gnu.org/philosopy/open-source-or-free.html
to
-
(first printing only) p. 75, first screen example:
- The "<Body " in the second line is spurious and should
be ignored.
- There should be a ">" after "<stdio.h".
Thus, the example should read:
floss$ pwd
/home/whatever/myproj_branch
floss$ cat b-subdir/random.c
/* Print out a random number. */
#include <stdio.h>
void main ()
{
printf ("A random number.\n");
printf ("Get the joke?\n");
}
floss$
-
(first printing only) p. 76, first screen example:
There should a ">>>>>>>" preceding
the "1.2.2.2", so the example should read:
floss$ pwd
/home/whatever/myproj
floss$ cat b-subdir/random.c
/* Print out a random number. */
#include <stdio.h>
void main ()
{
<<<<<<< random.c
printf ("A random number.\n");
=======
printf ("A random number.\n");
printf ("Get the joke?\n");
>>>>>>> 1.2.2.2
}
floss$
-
(first printing only) p. 76, second screen example:
For some reason the initial command appears once before the prompt and
again after it. Just eliminate the first two lines of the example, so
it looks like this:
floss$ cvs -q update -j "Release-1999_05_01-bugfixes:2 days ago" \
-j Release-1999_05_01-bugfixes
RCS file: /usr/local/cvs/myproj/b-subdir/random.c,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
Merging differences between 1.2.2.1 and 1.2.2.2 into random.c
floss$
-
(first printing only) p. 77, second screen example:
I forgot to put a backslash before the first line break, to indicate
that the command continues on the next line. In addition, the line
break happens in an unnecessarily awkward spot. The example should
look like this:
floss$ cvs -q update -j Release-1999_05_01-bugfixes-fix-number-1 \
-j Release-1999_05_01-bugfixes
RCS file: /usr/local/cvs/myproj/b-subdir/random.c,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
Merging differences between 1.2.2.1 and 1.2.2.2 into random.c
floss$
-
(first printing only) p. 21, third screen example:
The prompt incorrectly is "C:\WINDOWS>", but should be a
Unix prompt, "floss$".
-
(first printing only) p. 47, section heading:
The section heading "The Slow Method Of Updating" should read
"The Slow Method Of Reverting".
-
(first printing only) p. 49, section heading:
The section heading "The Fast Method Of Updating" should read
"The Fast Method Of Reverting".
-
(first printing only) p. 57, text immediately following middle code example:
The parenthetical statement should refer to seconds, not minutes, like
this: "... (unless there were any commits during the last second of
the day, which there weren't)."
-
(first printing only) p. 104, short paragraph between two screen examples:
The parenthetical statement "(You will probably need to do that last
step as the superuser.)" is misplaced -- it should actually appear in
the next paragraph of running text, because it refers to the
command make install, not make.
-
(first printing only) p. 131:
The text subtly switches topics in a confusing way. The upper half of
the page talks about some properties shared by three different
administrative files. Then the lower half (right after the Tip)
launches into a description of one of those files in particular,
without ever announcing that the topic has changed from the general to
the specific. To fix this, change the first line of running text
after the Tip to read:
"The commitinfo file is for generic hooks you want run on
every commit. Here are some example commitinfo lines: ...".
-
(first printing only) p. 132, loginfo expansion examples:
The text claims that %-expansions always begin with the path to the
repository. I could swear I experimented to make sure this was true,
but I must have been asleep, because it turns out it expands to the
subdirectory in the repository. Thus, all the one-line screen
examples on this page that start with /usr/local/newrepos should
be changed to start with myproj instead.
-
(first printing only) p. 171, second paragraph:
Until its last sentence, this paragraph falsely implies that the only
way to restrict use of the cvs admin command is via Unix
permissions. Here is a more accurate rewording of the paragraph:
"Although its name might seem to imply that only the designated CVS
administrator can use it, normally anyone can run
cvs admin, as long as they have write access to the
project in question. However, if a Unix group named
cvsadmin exists the server machine, then use of this
command is restricted to members of that group (except that the
cvs admin -k command is still allowed for all).
Either way, cvs admin is best used with caution; the
ability to change a project's history is mild compared with the other
potentially damaging things it can do."
-
(first printing only) p. 232, second paragraph of running text:
The word "information" in the first sentence should be "Info"
(it refers to the GNU Info documentation format, not to information in
general).
-
(first printing only) p. 238, -e EDITOR option:
The third line of text is missing two words; it should read
"... invokes the editor based on the CVSEDITOR, VISUAL, or EDITOR
environment variables, ..."
-
(first printing only) p. 238, --help [COMMAND] -H [COMMAND]:
These are two versions of the same option, and are never given at the
same time. Therefore, there should be a line break between them
(before the capital "-H").
-
(first printing only) p. 241, -v --version:
These two are the same option, and so are never given at the
same time. Therefore, there should be a line break before the
"--version".
-
(first printing only) p. 247, -j option(s):
One can invoke cvs checkout with either one -j
option or two. Insert the word "or" before the second -j
option, to make this clear.
-
(first printing only) p. 260, top of page:
There should be a paragraph break, and a loosening of indentation,
after the first sentence (the one ending in "earlier"). This is
because what follows applies to all the items in the inner
bulleted list, including the ones on the preceding page, not just the
final item (which happens to be at the top of this page).
-
(first printing only) p. 276, screen example at middle of page:
(Essentially the same error as mentioned earlier for page 132).
The expansion is prefixed by the subdirectory in the repository, not
the full path to the repository. Change the text and screen example
at the middle of the page to read like this:
"If any % expansion is done at all, the expansion is prefixed by the
subdirectory in the repository. So that last expansion would actually
be:
myproj hello.c,1.17 README.txt,1.12
Probably Insignificant Errors
-
(first printing only) p. 18, second-to-last paragraph:
The word "compiled" should be "completed".
-
(first printing only) p. 31, diff example:
The "[0=9.]" in the changed ("!") line in the first diff hunk
should read "[0-9.]". I have no idea how that error crept
in, as I simply cut and pasted from code that had been working fine.
Very odd.
-
(first printing only) p. 31, running text near middle of page:
Just a simple typo, "smae" instead of "same".
-
(first printing only) p. 60, fourth paragraph of running text:
Instead of "Tags differs ..." it should read "Tags differ ...".
-
(first printing only) p. 131, first line of the Tip:
It starts off "Regular expressions being ...", but "Regular
expressions are ..." would be more correct and more readable.
-
(first printing only) p. 227, first two subheadings:
Both of these subheadings capitalize the word "Export";
however, it should not be capitalized because it is the name of a CVS
command (cvs export) and is always invoked lower-case.
(Note that the capital "-D" in the first subheading is
correct, however.)
-
(first printing only) p. 249, -D option:
Missing a period at the end of a sentence (after the word
"revisions").
-
(first printing only) p. 261, 262, 266:
I inconsistently used "Alternative names" on these pages, instead of
"Alternate names" as I did everywhere else in the command reference.
Flog me with a SCSI cable, twenty lashes please.
-
(first and second printings) p. 273, paragraph under "User Variables" heading:
The word "set" appears spuriously. The text says "Users can set also
set their own variables..."; the first "set" should be omitted.
-
(first printing only) p. 295 (Chapter 10, example of cvs2cl.pl output):
The text incorrectly describes the ChangeLog entry as showing the
simultaneous commit of three files. In fact, there are four files, so
the next paragraph of text (right after the ChangLog excerpts) should
begin like this:
'The first entry shows that four files were committed at once, with the
log message, "Committing from pcl-cvs 2.9, just for kicks.".'
-
(first printing only) Copyright notice: The copyright notice at the beginning of the
book contains a misprint. Copyright is actually held by Karl Fogel,
not The Coriolis Group.
-
(first printing only) Back cover blurb: No knowledge of Linux C++ development is
necessary to understand this book, nor is "practitioner-level
knowledge of Linux administration" specifically required, although
some knowledge of general Unix administration is helpful.
Back to the
Open Source Development With CVS Home Page.