(cvs.info.gz) Multiple developers
Info Catalog
(cvs.info.gz) Binary files
(cvs.info.gz) Top
(cvs.info.gz) Revision management
10 Multiple developers
**********************
When more than one person works on a software project things often get
complicated. Often, two people try to edit the same file
simultaneously. One solution, known as "file locking" or "reserved
checkouts", is to allow only one person to edit each file at a time.
This is the only solution with some version control systems, including
RCS and SCCS. Currently the usual way to get reserved checkouts with
CVS is the `cvs admin -l' command ( admin options). This is not
as nicely integrated into CVS as the watch features, described below,
but it seems that most people with a need for reserved checkouts find
it adequate.
As of CVS version 1.12.10, another technique for getting most of the
effect of reserved checkouts is to enable advisory locks. To enable
advisory locks, have all developers put "edit -c", "commit -c" in their
.cvsrc file, and turn on watches in the repository. This prevents them
from doing a `cvs edit' if anyone is already editting the file. It
also may be possible to use plain watches together with suitable
procedures (not enforced by software), to avoid having two people edit
at the same time.
The default model with CVS is known as "unreserved checkouts". In
this model, developers can edit their own "working copy" of a file
simultaneously. The first person that commits his changes has no
automatic way of knowing that another has started to edit it. Others
will get an error message when they try to commit the file. They must
then use CVS commands to bring their working copy up to date with the
repository revision. This process is almost automatic.
CVS also supports mechanisms which facilitate various kinds of
communication, without actually enforcing rules like reserved checkouts
do.
The rest of this chapter describes how these various models work,
and some of the issues involved in choosing between them.
Menu
* File status A file can be in several states
* Updating a file Bringing a file up-to-date
* Conflicts example An informative example
* Informing others To cooperate you must inform
* Concurrency Simultaneous repository access
* Watches Mechanisms to track who is editing files
* Choosing a model Reserved or unreserved checkouts?
Info Catalog
(cvs.info.gz) Binary files
(cvs.info.gz) Top
(cvs.info.gz) Revision management
automatically generated byinfo2html