Contents / Previous / Next


Checkout Modes: Reserved or Unreserved Checkouts

Reserved Checkouts:
This is also known as "file locking", it is to allow only one person to edit each file at a time.
This is the only solution with some version control systems. The usual way to get reserved checkouts with GNU-CVS is the `cvs admin -l' command. It also possible to use the watches features.

Unreserved Checkouts:
This is the default model with GNU-CVS.
Developers can edit their own "working copy" of a file simultaneously.
They must then use CVS commands to bring their working copy up to date with the repository revision. This process is almost automatic.

Reserved and unreserved checkouts each have pros and cons:
Arguments for Unreserved Checkouts Arguments for Reserved Checkouts
  • Reserved checkouts can be very counter-productive. If two persons want to edit different parts of a file, there may be no reason to prevent either of them from doing so.
  • The experience of many groups with unreserved checkouts is that conflicts occur rarely and usually are relatively straightforward to resolve.
    Conflicts occur when two developers disagree on the proper design for a given section of code; such a disagreement suggests that the team has not been communicating properly.
  • With reserved checkouts it is common to take out a lock on a file, planning to edit it, but then forget to release the lock.
  • It is in general better to avoid conflicts instead of allowing them and afterwards resolving them again.
  • Unreserved checkouts are inappropriate if no merge tool exists for the kind of file you are managing, for example word processor files or files edited by Computer Aided Design programs.