Subject: Re: now 'make cleandir' is confused
To: Eric Haszlakiewicz <erh@nimenees.com>
From: Brian Hechinger <wonko@entropy.tmok.com>
List: current-users
Date: 04/07/2001 14:16:03
Eric Haszlakiewicz drunkenly mumbled...
> >From reading your earlier messages I gather that you have an extra grep 
> _directory_ sitting around.  With that in mind, the following applies:

created by cvs, yes.

> 	the reason CVS isn't removing the directorie in this case is because a
> previous build left some files sitting around from a previous build.  When
> you do a cvs update before a make cleandir you removed the Makefile which
> would have removed those files and replaced it with one that uses the same
> name as a file.  This is NOT a bug in cvs.  cvs CAN'T handle this case
> because it has no way of knowing whether it should remove the extra files
> or not.  This is a problem, but the solution is to put generated files
> elsewhere (obj directories).

grep never got touched, make build bombed out long before it reached grep. so
from the point of view of cvs, make build was never run on this directory.

> 	on the other hand, if you have a file with the same name as a deleted
> directory in cvs, cvs should be able to handle it either by keeping some
> kind of history on directories or by delaying creation of the directory
> until it actually has something to put in it.  This is a bug.  Noone yet
> has hed enough impetus to do something about it.  (go for it! :) )

i fail to understand why cvs wants to create a directory with the same name as
the binary.  why, what is it doing that it needs to do that?  could it at
least be named something else so make and cvs have less possability of stepping
on each other's toes?  the worst case would be that i would be able to get
through a make cleandir to start over instead of checking out the entire tree
again.

speaking of which, now i'm having trouble with that as well.  i can't win.

/usr/src is a mount point, which may be my problem, i don't know, but it's
completely empty:

# cd /usr/src
# ls -la
total 2
drwxr-xr-x   2 wonko  wheel  512 Apr  7 13:25 .
drwxr-xr-x  17 root   wheel  512 Feb  9 20:47 ..
# cd ..
# cvs login
(Logging in to anoncvs@anoncvs.netbsd.org)
CVS password: 
# cvs checkout -P src
cvs checkout: in directory src:
cvs checkout: cannot open CVS/Entries for reading: No such file or directory
cvs server: Updating src
U src/Makefile
cvs [checkout aborted]: cannot open CVS/Entries.Log: No such file or directory
#

last time i grabbed src i was accidetally in /usr/src so i ended up with
/usr/src/src which i moved so that it was /usr/src.  it worked that time.
is the fact that the directory already exists confusing cvs and if so how do
i "convince" cvs to just act as if src wasn't there in the first place? i can
do the /usr/src/src thing again since it's on the same filesystem mv can put
the entire tree where it belongs in faster than you can count to 1, but i'd
like to do it the "right" way if possible.

thanks for all the help.

-brian