
Sven Panne
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