[TriLUG] aliasing cvsroots

William Sutton william at trilug.org
Thu Mar 10 07:13:53 EST 2005


On Thu, 10 Mar 2005, T. Bryan wrote:

> On Wednesday 09 March 2005 07:18, William Sutton wrote:
> > I appreciate your taking a stab at it, but module aliasing would only work
> > if the cvsroot was /cvs and foo/bar/baz were modules.  I already ran
> > across that one and rejected it :)
> 
> Okay.  Then what you're saying doesn't make sense.  ;-)

Well, it does...check below

> 
> > Unfortunately for me, foo/bar/baz are cvsroots, with modules beneath them.
> 
> If foo, bar, and baz are CVS repositories (that is, you set them up with 
> something like a cvs init "/cvs/foo" and each one has its own CVSROOT), then 

yes, foo, bar, and baz each have their own CVSROOT (as a matter of fact, 
it appears that some of our developers managed to check code into some of 
the CVSROOT directories!?!)

> neither "cvs" nor "foo" should show up when you check out a module from 
> /cvs/foo.  If /cvs/ is really the repository, then you'd have one CVSROOT, 
> and foo, bar, and baz are really modules in that repository.  In that case, 
> foo, bar, or baz would probably show up in the sandbox path when users 
> checkout, but the "cvs" will still not be part of the path.
> 
> > What we want, as far as the user is concerned, is for the /cvs portion of
> > the path to disappear.
> 
> If there's a module called "src" under /cvs/foo, then I should be able to run
> cvs -d /cvs/foo checkout src

This may be where I can make some sense of it.  See, instead of saying cvs 
-d /cvs/foo checkout src, we want to say cvs -d /foo checkout src, but 
have foo be in /cvs.  Make sense now?

> The directory that this command will create is simply called src.  The cvs and 
> foo don't show up in my sandbox's path unless there's some funky module 

right, we don't care about having the foo, bar, or baz directory in our 
sandboxes, just (to use the earlier example), the src module (or 
whatever).

> aliasing going on.  I can also run
> cvs -d /cvs/foo checkout -d MySource src
> to get CVS to checkout the src module from /cvs/foo and put it in a directory 
> called MySource instead of a directory called src.  Maybe your users are 
> getting the two -d flags confused.  One is a global option, the other is a 
> checkout command option, and they do different things.  :-)
> 
> > I know we could do it by the simple expedient of putting foo/bar/baz in
> > the / directory, 
> 
> Yuck.  Don't do that.  :-)

which is what we are trying to avoid :)

> 
> > Besides which, our CVSNT server is able to keep them in c:\cvs_repository
> > without "c:\cvs_repository" being part of the path, so it seems like this
> > ought to be doable.
> 
> Certainly, but first we have to figure out what's actually going on.  Either 
> there's something else about your environment that you haven't mentioned, 
> I've misunderstood your configuration, or you're lying.  ;-)

I think it's option 2 :)

> 
> ----Tom
> 
> 

Clear as mud yet?

William



More information about the TriLUG mailing list