[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