bug-cvs
[Top][All Lists]
Advanced

[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

-----BEGIN PGP SIGNED MESSAGE-----

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
like

        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

        http://ccvs.cvshome.org/issues/query.cgi?component=ccvs

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 .
  .
  ./CVS
  ./CVS/Root
  ./CVS/Repository
  ./CVS/Entries
  ./bla
  ./tag.log
  ./global.log
  ./sub
  ./sub/CVS
  ./sub/CVS/Root
  ./sub/CVS/Repository
  ./sub/CVS/Entries
  ./sub/blub
  ./sub/toggle
  ./new_trunk
  ./new_trunk/CVS
  ./new_trunk/CVS/Root
  ./new_trunk/CVS/Repository
  ./new_trunk/CVS/Entries
  ./new_trunk/global.log
  ./new_trunk/tag.log

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
  done
  Checking in global.log;
  /home/merten/vault/sm/try_lcvs/global.log,v  <--  global.log
  new revision: 2.1; previous revision: 1.83
  done
  Checking in tag.log;
  /home/merten/vault/sm/try_lcvs/tag.log,v  <--  tag.log
  new revision: 2.1; previous revision: 1.80
  done
  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
  done
  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
  done
  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

                                                Stefan

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

iQCVAwUBP6vX4AnTZgC3zSk5AQG4OQP/WpcP579rbD0OuneMnSfI7+IoORGF7D68
GVQy6UX66UTcaa+FICWsqz+s75lYdyK46xERMdWAwpdCDyLOYYRLI/Y6grczubCY
2B5WqjbGShJAsa1ivNeLafHq2TsnAvyGOXe87+ua6Py6Hz6vxhlUYlgy96u8g02j
6ktJX1Y4XB4=
=ZHxu
-----END PGP SIGNATURE-----




reply via email to

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