## SYNOPSIS

           cvslock [-q] [-p pid] [-d CVS root] [-R|-W] [-u|-s|-c Com
           mand] directory

## DESCRIPTION

           cvslock is used to lock a tree starting  at  directory  in
           your  CVS  repository  during  low-level  manipulation  or
           inspection.

           There are various modes of operation: You can use  the  -s
           or  -c  options to cause cvslock to spawn a sub-shell or a
           shell command from which you can safely access the  source
           repository.

           You  can also use cvslock to lock and unlock CVS reposito
           ries from shell scripts; in this case you'll want  to  use
           the  -p  option to specify the process ID which is written
           to the lock files' names.

           The default when given no options is to acquire a  persis
           tant read lock.

## OPTIONS

           -q     This  option tells cvslock to shut up and not print
                  any diagnostic messages to stdout.   This  is  most
                  useful  when using the program in conjunction with,
                  e.g., rsync(1).

           -p pid The CVS lock files generated by this  utility  have
                  the current process ID in their name to distinguish
                  them from lock files generated by other tools  such
                  as  cvs  itself  or concurrent sessions of cvslock.
                  Use this option to force cvslock to use a  specific
                  pid.  This is in most useful from shell scripts.

           -d CVS root
                  This optional argument tells cvslock where your CVS
                  repository's root is.  If no -d  switch  is  given,
                  cvslock  will  fall back to the CVSROOT environment
                  variable.  Note that cvslock only  works  on  local
                  repositories,  so  don't  try  to access pserver or
                  rsh-accessible remote repositories this way.

           -R     This switch tells cvslock to  acquire  a  lock  for
                  safe reading of the repository.

           -W     This  switch  tells cvslock to acquire a write lock
                  on the repository.

           -s     When invoked with this option, cvslock will  invoke
                  the  user's  login shell as determined by the SHELL
                  environment variable after locking the  repository.

## DIAGNOSTICS

           cvslock  spits  out some diagnostics to the standard error
           stream.  It's exit value is zero if and only if the  lock
           ing  operation  requested  by  the user could be performed
           successfully.  Note that no  diagnostics  about  the  exit
           value  of  commands  executed  through  the  -c switch are
           given.

## BUGS

           The signal handling is not too well-tested and may be bro
           ken.

           If you try to create the same lock several times, you will
           get funny effects due to the error recovery cvslock  tries
           to do.

## SEE ALSO

           Version Management with CVS

           rsync(1), system(3), cvs(1)

## AUTHOR

           cvslock  was  put  together  in a quick hacking session by
           Thomas Roessler <roessler@guug.de> and may be  distributed
           under  the terms of the GNU General Public License version
           2.

    Unix                       October 1998                cvslock(1)