[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Symlinks and CVSROOT
From: |
Dan Peterson |
Subject: |
Symlinks and CVSROOT |
Date: |
Tue, 14 May 2002 17:02:44 -0700 (Pacific Daylight Time) |
We're in the process of setting up a new server for CVS access and for
various fallback, redundancy and recovery reasons the directory part of
the users CVSROOT environment variable must point to a symlink.
During testing of the system, we discovered commands don't always work
right. In particular it seems like checking out with -r <tag> doesn't
always work. I've seen this work for some tags and fail for others. Some
of the other people testing the system have seen it work sometimes and
fail other times for the same tag.
After searching old cvs-info archives I found the message below, which
seems to be the same problem we're having. A couple questions:
1. Can this be fixed? Or is this already fixed? We are currently using
1.11.1p1 for the tests, but plan on moving to 1.11.2 very soon. Will that
make a difference?
2. After looking at the code (lock.c:177 for 1.11.1p1) I'm guessing the
reason the assert fails is because "repository" contains a translated
version of the path (without symlinks) and "CVSroot_directory" contains
the symlink version of the directory. Is that correct?
Assuming that's true, would it be possible to force the internal
representation of the CVSROOT directory to be symlink free? In other
words, translate it into the real path? And would that help?
3. Why doesn't if fail consistently? Why only certain tags?
------------------------------------------------------------------------
Subject: Re: Assert Failure: cvs: lock.c:173: lock_name: Assertion `strncmp (r
Date: Wed, 6 Jun 2001 14:39:34 -0400 (EDT)
From: address@hidden (Larry Jones)
Content-Type: text/plain; charset=US-ASCII
Nesbitt, Steve writes:
>
> cvs: lock.c:173: lock_name: Assertion `strncmp (repository,
> CVSroot_directory, strlen (CVSroot_directory)) == 0' failed.
> Terminated with fatal signal 6
[...]
> This command was working last week. The only known change is that the
> repository was copied to another disk yesterday because of disk space
> problems.
And that's the cause of the problem. CVS doesn't like it when CVSROOT
is a symlink rather than a real directory. You may be able to use some
kind of "loopback" mount rather than a symlink. If not, you'll have to
change everyone's CVSROOT or live with the things that don't work.
-Larry Jones
------------------------------------------------------------------------
- Symlinks and CVSROOT,
Dan Peterson <=