
Malcolm Wallace wrote:
[...] You can make symlinks within the CVS repository if you need to, as I have already done to ensure that nhc98/src/cpphs points to the master copy of the sources.
Huh? Symlinks? Modules are the usual way to tie together different directories in CVS...
Can't say I ever fully understood the concept of CVS modules. So how would I (for instance) graft the hierarchical libraries, hsc2hs, and cpphs into the source tree of nhc98, all of which are currently symlinks?
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. 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 nhc98template ------------------------------------------------------------------------------------ Using "cvs -d ... co nhc98all" yields a nh98_ directory with the various parts grafted to the right places. The lines containing "-d" are sub-modules for the various parts moved to the right place, and the final module simply collects them all. The underscores are only a temporary measure while the old (evil :-) stuff is still there. You can changes this when the symlinks are removed. There are a few other symlinks in the repository (e.g. HaXml), we should fix them, too. Cheers, S.