X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fdevel.texi;h=48ed58d46e2f2a95f654c2431fba02cc5d77b0d5;hb=90053831bfef7cfa230cae40301f387ed213718c;hp=9a4ed26da74ee1b1177d1b22162cb8ebd9b047f2;hpb=b2b72dd2a4460d2e670aad3444270e2aefa5fa85;p=pintos-anon diff --git a/doc/devel.texi b/doc/devel.texi index 9a4ed26..48ed58d 100644 --- a/doc/devel.texi +++ b/doc/devel.texi @@ -1,4 +1,4 @@ -@node Development Tools, , Debugging Tools, Top +@node Development Tools @appendix Development Tools Here are some tools that you might find useful while developing code. @@ -49,6 +49,7 @@ home page}. @menu * Setting Up CVS:: * Using CVS:: +* CVS Locking:: @end menu @node Setting Up CVS @@ -76,7 +77,14 @@ members access to it. We will assume that the repository will be in a directory called @file{cvs} in the keeper's home directory. First create this directory with @samp{mkdir $HOME/cvs}, then give group members access to it with @samp{fs setacl -dir $HOME/cvs -acl -@var{keeper}:pintos-cvs rlidwk}. +@var{keeper}:pintos-cvs write}. Group members also need to be able to +look up the @file{cvs} directory in the keeper's home directory, which +can be enabled via @samp{fs setacl -dir $HOME -acl +@var{keeper}:pintos-cvs l} (that's letter ``ell,'' not digit +``one.'').@footnote{This command will allow group members to list the +files in your home directory, but not read or write them. It should not +create a security risk unless the names of files in your home directory +are secret.} Now initialize the repository. To initialize the repository, execute @samp{cvs -d $HOME/cvs init}. @@ -92,6 +100,19 @@ command: cvs -d $HOME/cvs import -m "Imported sources" pintos foobar start @end example +Here is a summary of the commands you have now executed: + +@example +pts creategroup @var{keeper}:pintos-cvs +pts adduser -user @var{username} -group @var{keeper}:pintos-cvs +mkdir $HOME/cvs +fs setacl -dir $HOME/cvs -acl @var{keeper}:pintos-cvs write +fs setacl -dir $HOME -acl @var{keeper}:pintos-cvs l +cvs -d $HOME/cvs init +cd /usr/class/cs140/pintos/pintos +cvs -d $HOME/cvs import -m "Imported sources" pintos foobar start +@end example + The repository is now ready for use by any group member, as described below. Keep in mind that the repository should only be accessed using CVS commands---it is not generally useful to examine them by @@ -101,10 +122,15 @@ hand, and you should definitely not modify them yourself. @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 @@ -163,6 +189,28 @@ ago}. 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