[prev in list] [next in list] [prev in thread] [next in thread]
List: hugs-cvs
Subject: Re: cpphs now in CVS
From: Sven Panne <Sven.Panne () aedion ! de>
Date: 2004-06-10 21:21:27
Message-ID: 40C8D0D7.3020401 () aedion ! de
[Download RAW message or body]
Malcolm Wallace wrote:
> Well, I still don't understand why symlinks are evil, and locks
> have never yet caused me a problem [...]
I don't understand every detail of CVS' locking mechanism (there are read and
write locks AFAIK), but consider the following scenario:
* a/b/C.hs is a symlink to d/C.hs (relative to the root of the repository)
* You try to commit a change to a/b/C.hs. CVS uses a lock in a/b for this.
* At almost exactly the same time do I try to commit my change to d/C.hs.
This time, CVS uses a lock in d.
Voila! Two locks for the same file... I'm not sure *what* exactly can happen
and the scenario is not very likely, but it makes me feel a bit uneasy...
Symlinking might even work with respect to locking when you symlink to a whole
directory, but this is exactly the part which is easily handled by CVS modules.
> 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. [...]
I must admit that I only tested the checkout, not updating. :-[ And thinking a
bit about it, it's clear that grafting only works for whole directories, because
CVS manages some information about files only per directory (see the files
CVS/Repository and CVS/Root).
There are currently two "evil links" left in nhc98 (template-hsc.h and Main.hs,
both from GHC's hsc2hs directory). I'd like to propose that you move nhc98's
hsc2hs Makefiles to the "real" hsc2hs directory (renaming Makefile a bit, of
course :-) and simply graft the whole hsc2hs directory into nhc98. Then you
have all you need, only nhc98's toplevel Makefile needs some adaptation.
Cheers,
S.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic