cpphs now in CVS

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Wed Jun 9 11:06:28 EDT 2004


Sven Panne <Sven.Panne at aedion.de> writes:

> I just had a look at the repository structure and only now I fully realize
> what you mean by symlinking in the repository. This is evil and confuses CVS
> quite a bit! :-] You get e.g. locks *per directory* in the repository, but
> with the Evil Symlinking (tm) you get several locks for one entity, which is
> hardly what is intended.

Well, I still don't understand why symlinks are evil, and locks
have never yet caused me a problem, but thank you for showing me the
CVS-native way of achieving my goal.

> After fiddling around quite a bit with the syntax of the module file, I've
> added an example module "nhc98all" which does almost what you want:
> 
> -- CVSROOT/modules
> -----------------------------------------------------------------
> ...
> nhc98only	-d nhc98_                nhc98
> nhc98cpphs	-d nhc98_/src/cpphs_     cpphs
> nhc98hsc2hs	-d nhc98_/src/hsc2hs_    fptools/ghc/utils/hsc2hs
> nhc98libraries -d nhc98_/src/libraries_ fptools/libraries
> nhc98template	-d nhc98_/script_        fptools/ghc/utils/hsc2hs template-hsc.h
> nhc98all	-a nhc98only nhc98cpphs nhc98libraries nhc98hsc2hs nhc98template
> --------------------------------------------------------------

Yes, it is almost right.  That is, it seems to work nicely for
grafting directories, but doesn't work at all as expected for grafting
individual files, e.g. the template-hsc.h entry.  If I remove its
symlink from the repository and de-underscore your module stuff:

  nhc98template	-d nhc98_/script   fptools/ghc/utils/hsc2hs template-hsc.h

then template-hsc.h gets placed in the correct directory on checkout,
but subsequent operations (update, diff, commit) claim the file does
not exist in the repository.

Perhaps I will adopt your solution for directories but retain symlinks
for the files.  :-]  How does that grab you?

> There are a few other symlinks in the repository (e.g. HaXml), we should fix
> them, too.

Yes, I propose simply to move the actual HaXml sources into
fptools/libraries, so the original toplevel location is no longer
directly available, but replaced by a module definition like

    HaXml -d HaXml fptools/libraries/HaXml

Regards,
    Malcolm


More information about the Cvs-hugs mailing list