> Is it possible to lock a branch, or somehow make it "read-only"
> so that no further check-ins can be done on it? In perusing
> of Cvedarquist and cvsbook.red-bean.com I can't find it.
>
> Locking branches (actually "obsolete -lock") is a common
> ClearCase practice that would be nice to have here.
>
> If not, this seems to fit into the CVS philosophy:
> 1. Define a new special tag (cf HEAD) called LOCKED.
> 2. This tag is always sticky.
> 3. On checkout, if the version is tagged LOCKED, then
> (try to) remove write permission.
> 4. On checkin, fail if the version was tagged LOCKED.
(0) Locking branches is a good idea.
(1) Previous posts to the CVS mailing list suggesting locking
branches have resulted in the rather silly suggestion that you
cvs remove all the files on a branch - i.e. that you tag the
last valid contour in a branch, and then empty the branch.
An almost useless and stupid idea...
(2) Currently, CVS tags are unique within a file - a tag
maps to one and only one version. I.e. a tag is a unique name,
and not a property.
File states don't fit the bill, because they are per file - and
a file may exist in more than one branch.
CVS needs to have a concept of branch state. That could be something
as simple as adding a magic suffix to a branch name - part of the suffix
to uniqify, and part to indicate state.