@menu
* Setting Up CVS::
* Using CVS::
+* CVS Locking::
@end menu
@node Setting Up CVS
@subsection Using CVS
To use CVS, start by check out a working copy of the contents of the
-CVS repository into a directory named @file{@var{dir}}, execute
+CVS repository into a directory named @file{@var{dir}}. To do so, execute
@samp{cvs -d ~@var{keeper}/cvs checkout -d @var{dir} pintos}, where
@var{keeper} is the CVS keeper's Leland username.
+(If this fails due to some kind of permission problem, then run
+@command{aklog} and try again. If it still doesn't work, log out and
+back in. If that still doesn't fix the problem, the CVS repository may
+not be initialized properly.)
+
At this point, you can modify any of the files in the working copy.
You can see the changes you've made with @samp{cvs diff -u}. If you
want to commit these changes back to the repository, making them
For more information, visit the @uref{https://www.cvshome.org/, , CVS
home page}.
+@node CVS Locking
+@subsection CVS Locking
+
+You might occasionally see a message like this while using CVS:
+
+@example
+waiting for blp's lock in /afs/ir/users/b/l/blp/cvs
+@end example
+
+This normally means that more than one user is accessing the repository
+at the same time. CVS should automatically retry after 30 seconds, at
+which time the operation should normally be able to continue.
+
+If you encounter a long wait for a lock, of more than a minute or so, it
+may indicate that a CVS command did not complete properly and failed to
+remove its locks. If you think that this is the case, ask the user in
+question about it. If it appears that an operation did go awry, then
+you (or the named user) can delete files whose names start with
+@file{#cvs.rfl}, @file{#cvs.wfl}, or @file{#cvs.lock} in the directory
+mentioned in the message. Doing so should allow your operation to
+proceed. Do not delete or modify other files.
+
@node SourceForge
@section SourceForge