Symbolic links with cvs

Igor Pechtchanski
Sat Dec 3 04:54:00 GMT 2005

Ugh, top-posting...  Reformatted.

On Fri, 2 Dec 2005, Akshay Dua wrote:

> > From: Igor Pechtchanski [mailto:pechtcha@XX.XXX.XXX]
> > Sent: Friday, December 02, 2005 6:43 PM
> > To: Akshay Dua
> > Cc: cygwin@XXXXXX.XXX

<>.  Thanks.

> > Subject: Re: Symbolic links with cvs
> >
> > On Fri, 2 Dec 2005, Akshay Dua wrote:
> >
> > > Hello,
> > >
> > > Unfortunately, we have .lnk files in our source control
> > > [snip]
> > > U thirdparty/OPENSSL-0.9.7-BETA3/Makefile.lnk
> > > cvs checkout: cannot stat Makefile.lnk: No such file or directory
> >
> > As soon as you check out a .lnk file, it becomes a symlink, and Cygwin
> > will attempt to read the file that the symlink refers to.  If that
> > file doesn't exist (e.g., hasn't been checked out yet), any operations
> > on the symlink will fail (it will be a dangling link).  This is not a
> > Cygwin-specific issue (unless the .lnk in the name is an unfortunate
> > coincidence).  If you really are trying to commit a symlink to cvs,
> > the CVS manual says that this is not supported:
> > <>.
> Thanks so much for your reply.
> Is there a way to tell Cygwin to stop converting (or treating) .lnk
> files as symlinks?

Larry already mentioned it: add "nowinsymlinks" to your CYGWIN variable.

> The thing is my colleagues with the same version of Cygwin do not have
> this problem. In their case Cygwin treats the .lnk file as a plain file
> rather than a symbolic link and hence does not follow it. I wonder why
> this behavior exists on my machine.

Hmm...  For a .lnk file to be treated as a symlink, it has to also be
marked read-only (and "system", I think)...

> The only thing I can think of, is that I set and then unset
> CYGWIN=ntsec. I don't know if that changed something. Before that I had
> whatever is enabled by default and in fact was not observing the above
> behavior even when I checked out .lnk files.

Heh.  Check that the directory you're checking out to still has Windows
(inherited) permissions...  Maybe that's your problem.

> The issue really is that since .lnk files are treated as symbolic links,
> they appear as locally modified to CVS because in one case the links are
> followed (locally) and in the other case they aren't (in the
> repository).
> Any suggestions on how I can get the old behavior back?

You still haven't answered whether they are *supposed* to be symlinks...
If they are, see the CVS manual -- what you're doing is non-portable, and
you can't expect it to work.  Subject to change at any time.  If they are
regular files that just happened to have the .lnk extension, you may have
a shot with the options above.

Another thing that would be useful for people on this list to be able to
help you is the output of "cygcheck -svr", as requested in the Cygwin
problem reporting guidelines at <>.  Please
make sure to attach the output, rather than including it inline.  That
would also answer the question of whether you have something unusual in
your environment.
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list