bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Alias module exclusion - subsequent update -d ignores exclusions


From: Matt Butt
Subject: RE: Alias module exclusion - subsequent update -d ignores exclusions
Date: Fri, 27 Feb 2004 09:28:29 -0000

Jim,

Thanks for your explanation.

I saw that if you checkout MyModule_export, CVS/Repository contains
"MyModule", so an update would indeed retrieve the excluded directories.
Strange functionality at first but I guess it makes sense.  It's the age
old discussion of whether the software should do what is technically
correct or operationally useful.

The Source+Publish approach is something that I have thought of but am
trying to avoid - we have several designers and developers working on
the websites and some of the designers aren't too technical savvy so I
was trying to keep things as simple as possible.  I'll give it a go
though and see how things progress.

Thanks again,

Matt



-----Original Message-----
From: Jim.Hyslop [mailto:address@hidden 
Sent: 26 February 2004 22:22
To: address@hidden
Subject: RE: Alias module exclusion - subsequent update -d ignores
exclusions

Matt Butt wrote:
> I've seen this mentioned in a few places as well but can't find any
> patches or hacks to fix it.
Nor should expect to see any, unless CVS gets a major rework in its
approach
(see explanation below).

> If I have a tree such as
> 
>   MyModule/sourcefiles
>   MyModule/compiledfiles
> 
> And in CVSROOT/modules I have a line:
> 
>   MyModule_export -a !MyModule/sourcefiles MyModule
> 
> 
> 
> By executing:
> 
>   cvs checkout MyModule_export
> 
> I get just the MyModule/compiledfiles directory as expected.
> 
> 
> However, if I then do:
> 
>   cvs update -d
> 
> then MyModule/sourcefiles is retrieved from the repository.  It makes
> more sense to me to keep this directory excluded.  I know I can leave
> off "-d" but in the environment I'm using this (updating a live web
> server with the latest files from the CVS repository) this isn't
> acceptable.
The problem is, CVS does not keep track of which module your source
comes
from. All it tracks is the directory in the repository. So, when you
issue
the update command, CVS looks in your local CVS/Repository file and
finds
that the current directory came from the directory MyModule in the
repository. CVS then looks at the MyModule directory in the repository,
discovers that the MyModule has a directory named sourcefiles and checks
it
out for you, exactly as you told it to.

So, as you can see, CVS is working exactly as designed, and as desired.

I think some judicious restructuring of your modules would help. Right
now,
you have module A, and module A-B. Change it so that you have module X,
and
module X+Y (where X is the public stuff, and Y is the source).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]