Here's what I'd like to do --

Suppose I have a simple hierarchy of directories a -- b -- c (that is, c
is a subdirectory of b, which is a subdirectory of a).  The entire
hierarchy has been checked out from CVS.

A team of developers is working on source code in directory b, and any
member of the team can do the normal CVS operations such as checkout,
update, and commit.  Source files in directory b are updated and
committed frequently.  

The files in directory c are MODIFIED frequently.  But I DO NOT want
them updated and committed every time someone does "cvs commit" or "cvs
update" in the b directory.  (I do want them updated and committed at
certain times, but those operations can be handled by a designated
repository administrator.)

My question is: Is there a good, reliable, bulletproof way to ensure
that directory c is ignored when updates and commits are performed in
directory b?

I know about the -l (local) option to commit and update.  But it's all
too easy for a team member to forget about using it, and I don't
consider the use of .cvsrc files to be a reliable way of enforcing the
use of -l.

I know about .cvsignore files, but they only apply to files that AREN'T
in the repository, and my files in directory c ARE in the repository.

I know about excluding files in module declarations, but as I understand
it, if a developer does this -- cd b ; cvs update -- then no module
declaration applies.

I think what I need is a file just like .cvsignore, but which causes CVS
to exclude the specified files from (at least) updates and commits.  

Or, does anyone know of a way to get this behavior, which I'm not aware
of?

Thanks in advance for any relevant information!

-- David Martin

Reply via email to