[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug in `cvs commit -r 2'?

From: Stefan Merten
Subject: Bug in `cvs commit -r 2'?
Date: Fri, 07 Nov 2003 18:35:28 +0100


Hi cvs hackers!

First of all thanks for the great work you are doing :-) . I use CVS
for years and can't do without it.

I guess I discovered a bug in `cvs'. It happens when I try something

        cvs commit -r 2

on a module containing sub-directories.

I checked it with version version 1.11.1p1 and version 1.11 on
GNU/Linux. In the later case I added `-f -R' which were needed in this
version to apply the commit to the whole directory.

I used a local repository in all cases.

I checked


but did not find a report similar to this one. This is why I'm
reporting this here though I'm using a rather outdated version.

Here is what happens:

  $ find .

The tree is well. For instance `cvs status' reports no problems. All
the files are up to date and they all have a trunk revision of 1.x.

  $ cvs commit -r 2 -m 'Commit to revision 2.' 
  cvs commit: Examining .
  cvs commit: Examining new_trunk
  cvs commit: Examining sub
  Checking in bla;
  /home/merten/vault/sm/try_lcvs/bla,v  <--  bla
  new revision: 2.1; previous revision: 1.104
  Checking in global.log;
  /home/merten/vault/sm/try_lcvs/global.log,v  <--  global.log
  new revision: 2.1; previous revision: 1.83
  Checking in tag.log;
  /home/merten/vault/sm/try_lcvs/tag.log,v  <--  tag.log
  new revision: 2.1; previous revision: 1.80
  Checking in new_trunk/global.log;
  /home/merten/vault/sm/try_lcvs/new_trunk/global.log,v  <--  global.log
  new revision: 2.1; previous revision: 1.1
  Checking in new_trunk/tag.log;
  /home/merten/vault/sm/try_lcvs/new_trunk/tag.log,v  <--  tag.log
  new revision: 2.1; previous revision: 1.1
  cvs commit: in directory new_trunk:
  cvs [commit aborted]: there is no version here; do 'cvs checkout' first

Bang! I tried this in some variations but obviously it happens as soon
as any sub-directory is involved.

I used `strace' to get an idea of what is going wrong here. It seems
that in a sub-directory - e.g. `sub' - `cvs' tries to access `sub/CVS'
instead of `CVS'. Of course this does not work.

I then tried to create a link in each sub-directory pointing to
itself. This helped. I recreated the situation in `$CVSROOT' and in
the working directory as it was before from an archive. Then I did:

  $ ln -s . new_trunk/new_trunk
  $ ln -s . sub/sub
  $ cvs commit -r 2 -m 'Commit to revision 2.' 

and this worked as it should.

I then tried the same but used the `:fork:' method to access the local
repository. This worked from the start without any problems. So this
is at least a work-around.

                                                Mit Freien Grüßen


Version: 2.6.3in
Charset: noconv
Comment: Processed by Mailcrypt 3.5.7, an Emacs/PGP interface


reply via email to

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