GNU Info

Info Node: (cvsbook.info)How Watches Work

(cvsbook.info)How Watches Work


Next: Enabling Watches In The Repository Up: Watches (CVS As Telephone)
Enter node , (file) or (file)node

How Watches Work
----------------

In its default behavior, CVS treats each working copy as an isolated
sandbox.  No one knows what you're doing in your working copy until you
commit your changes.  In turn, you don't know what others are doing in
theirs - except via the usual methods of communication, such as
shouting down the hallway, "Hey, I'm going to work on parse.c now.  Let
me know if you're editing it so we can avoid conflicts!"

This informality works for projects where people have a general idea of
who's responsible for what.  However, this process can break down when a
large number of developers are active in all parts of a code base and
want to avoid conflicts.  In such cases, they frequently have to cross
each others' areas of responsibility but can't shout down the hallway at
each other because they're geographically distributed.

A feature of CVS called `watches' provides developers with a way to
notify each other about who is working on what files at a given time.
By "setting a watch" on a file, a developer can have CVS notify her if
anyone else starts to work on that file.  The notifications are normally
sent via email, although it is possible to set up other notification
methods.

To use watches, you must modify one or two files in the repository
administrative area, and developers must add some extra steps to the
usual checkout/update/commit cycle.  The changes on the repository side
are fairly simple: You may need to edit the `CVSROOT/notify' file so
that CVS knows how notifications are to be performed.  You may also
have to add lines to the `CVSROOT/users' file, which supplies external
email addresses.

On the working copy side, developers have to tell CVS which files they
want to watch so that CVS can send them notifications when someone else
starts editing those files.  They also need to tell CVS when they start
or stop editing a file, so CVS can send out notifications to others who
may be watching.  The following commands are used to implement these
extra steps:

   * cvs watch

   * cvs edit

   * cvs unedit

The command `watch' differs from the usual CVS command pattern in that
it requires further subcommands, such as `cvs watch add...',
`cvs watch remove...', and so on.

In the following example, we'll look at how to turn on watches in the
repository and then how to use watches from the developer's side.  The
two example users, jrandom and qsmith, each have their own separate
working copies of the same project; the working copies may even be on
different machines.  As usual, all examples assume that the $CVSROOT
environment variable has already been set, so there's no need to pass -d
<REPOS> to any CVS commands.


automatically generated by info2www version 1.2.2.9