Ahh, indeed it is difficult to make changes to your build structure without
introducing other process changes in your environment. This is always a
tricky area. Agreed, changing the build structure such that the binaries
are located outside the source code hierarchy. But, at times we neither
have the time nor the resources to address the root cause.
Short of changing the directory structure, you could implement a commit info
script to avoid checking in files in the binaries directory except under
certain conditions. Now, I don't know what your conditions are. But, you
could come up with a list of conditions and implement that as a script.
Hook that into the commitinfo file only for the binaries directory...and it
just might work.
--Matt
-----Original Message-----
From: David Martin [mailto:[EMAIL PROTECTED]]
Sent: Monday, September 11, 2000 3:10 PM
To: Matthew Berney
Cc: [EMAIL PROTECTED]
Subject: Re: excluding subdirectories from update/commit ???
Matt --
Thanks for your comments.
Matthew Berney wrote:
> What is the requirement that you are trying to satisfy? Why do you need
to
> exclude updates?
The subdirectories, such as "c" in my example, contain binaries
corresponding to
the source code in their parent directories (such as "b"). We would like to
be
able to use CVS to make snapshots of the binaries at certain points in time,
but
we don't want the binaries to be updated or committed every time someone
runs
update or commit in the source code directory.
As I mentioned, I realize there are already some ways to prevent the updates
from applying to the binaries, but I'm looking for something that doesn't
place
any new constraints on the developers. That is, no matter what form of
update
or commit command a developer wants to use, I'd like to ensure that it
doesn't
apply to the subdirectories containing the binaries.
I realize it would make sense just to move the binaries out of the source
code
hierarchy, and make our binary snapshots from the new location. But this
creates
some other complications, so -- as always -- I'm just looking for the
solution
with the greatest simplicity and the least overhead.
-- David
>
>
> One way I can think of off the top of my head is to use static tags to
> create a baseline. Then when you update, you update to the specific tag
> instead of the tip. This gives you control over what revisions are
included
> when you update. Developers then can checkin to the tip, but the build
uses
> the static baseline. When you are ready to move the baseline, then you
> select the revisions that you want included in the new baseline and apply
a
> new static tag.
>
> Hope this helps,
>
> Matt
>
> -----Original Message-----
> From: David Martin [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, September 10, 2000 9:17 AM
> To: [EMAIL PROTECTED]
> Subject: excluding subdirectories from update/commit ???
>
> 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