info-cvs
[Top][All Lists]
Advanced

[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
  ------------------------------------------------------------------------







reply via email to

[Prev in Thread] Current Thread [Next in Thread]