Actions:
|
2011-08-04 16:58 AEST by Arthur Barrett - cvs co -p -r 1.18.2.11.6.9.2.4 cvsnt/src/version.cpp
cvsnt server: cannot find module `cvsnt/src/version.cpp' - ignored
The option 'UseRevOneDotOne' is set to 1 on the server, but in this case the
correct directory_history file is not revision 1.1 (which is blank), but
revision 1.1.4.1 - or eqaully as good would be revision 1.2.
Using revision 1.1 was always a nasty hack, we really need to find the branch
name of the revision and use that to open .directory_history... |
|
2011-08-04 16:59 AEST by Arthur Barrett - Created an attachment (id=2130)
trace
|
|
2011-08-04 17:02 AEST by Arthur Barrett - Created an attachment (id=2131)
successful : co -p -r CVSNT_2_8_01_3762 cvsnt/src/version.cpp
To compare a successful checkout using:
cvs -ttt co -p -r CVSNT_2_8_01_3762 cvsnt/src/version.cpp > trace2.txt 2>&1
|
|
2011-08-04 17:17 AEST by Arthur Barrett - 1.
So are trying to checkout a version, eg: 1.18.2.11.6.9.2.4
2.
we know that we can't use the version with the .directory_history, so we need
to use a branch name or a tag name
So we need a RCS function that given a version number will return the most
recent branch name (or tag name) that matches
3.
we can then use this branch/tag name instead of rev 1.1
|
|
2011-11-29 09:37 AEST by Arthur Barrett - Add 'renamed' to subject |
|
2012-07-10 11:34 AEST by Arthur Barrett - *** Bug 5367 has been marked as a duplicate of this bug. *** |
|
2012-07-10 11:36 AEST by Arthur Barrett - *** Bug 5405 has been marked as a duplicate of this bug. *** |
|
2014-02-01 08:06 AEST by Glen Starrett - Some additional information: Using CVS Suite 2009R2 4669 (client and server)
Once you use rename on a file, you cannot use "cvs checkout ... FILENAME" to
retrieve a file at all. This causes TortoiseCVS DIFF and VIEW operations to
fail on all renamed files.
Setup for repro:
1) Add a file to a test repo with a couple revisions (1.1, 1.2).
2) Tag the file "BEFORE_REN"
3) Rename the file and commit per eBook
4) Tag the file "AFTER_REN"
5) Commit a couple more revisions (1.3, 1.4).
File name was originally "rn3a.txt" and was renamed to "rn3b.txt".
>>>>
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs log rn3b.txt
RCS file: /myrepo/samp/samp/rn3b.txt,v
Working file: rn3b.txt
head: 1.4
branch:
locks: strict
access list:
symbolic names:
AFTER_REN: 1.2
BEFORE_REN: 1.2
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
----------------------------
revision 1.4
date: 2014/01/31 20:51:05; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 216452ec0c6d5ff6; username: Europa\Glen Starrett;
filename: rn3b.txt;
*** empty log message ***
----------------------------
revision 1.3
date: 2014/01/31 20:50:53; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 30c852ec0b9f5d55; username: Europa\Glen Starrett;
filename: rn3b.txt;
*** empty log message ***
----------------------------
revision 1.2
date: 2014/01/31 20:49:35; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 3ac452ec0c0d5ebc; username: Europa\Glen Starrett;
filename: rn3a.txt;
*** empty log message ***
----------------------------
revision 1.1
date: 2014/01/31 20:49:11; author: Europa\Glen Starrett; state: Exp; kopt: kv
; commitid: 3ad052ec0c405f63; username: Europa\Glen Starrett; filename: rn3a.
txt;
*** empty log message ***
=============================================================================
<<<<
Now, observe that ALL checkout commands fail if you use the filename, with only
one exception:
WORKS:
Using the original file name (e.g. the physical RCS file name) with NO revision
specifier results in the HEAD (version 1.4).
cvs co -p samp/samp/rn3a.txt
WORKS:
Using the original file name (e.g. the physical RCS file name) WITH revision
specifier results in the the correct version. Also works with TAG.
cvs co -p -r 1.1 samp/samp/rn3a.txt
cvs co -p -r BEFORE_REN samp/samp/rn3a.txt
FAILS:
Using the renamed file name WITH OR WITHOUT a revision number or TAG
>>>>
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p samp/samp/rn3b.txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.4 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.4 samp/samp/rn3a.
txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.4
***************
entered to orginal file rn3a.txt
more in a
Added after rename to b
Added more after rename to b
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.1 samp/samp/rn3a.
txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.1
***************
entered to original file rn3a.txt
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.1 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.4 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
<<<<
|
|
2014-02-01 08:43 AEST by Glen Starrett - Activating the Advanced tab option 'advanced directory revisioning' on the
Server control applet greatly improves the ability to use CO with renamed files.
Using the same "rn3b.txt" file described above:
Using the "New" filename WORKS for most cases.
GOOD BEHAVIOR:
cvs co -p samp/samp/rn3a.txt FAILS
cvs co -p samp/samp/rn3b.txt WORKS
cvs co -p -r 1.1 samp/samp/rn3a.txt WORKS
cvs co -p -r 1.2 samp/samp/rn3a.txt WORKS
cvs co -p -r 1.4 samp/samp/rn3a.txt FAILS
cvs co -p -r 1.1 samp/samp/rn3b.txt FAILS
cvs co -p -r 1.2 samp/samp/rn3b.txt FAILS
cvs co -p -r 1.4 samp/samp/rn3b.txt WORKS
cvs co -p -r BEFORE_REN samp/samp/rn3a.txt WORKS
cvs co -p -r BEFORE_REN samp/samp/rn3b.txt FAILS
ACCEPTABLE BEHAVIOR?:
cvs co -p -r AFTER_REN samp/samp/rn3a.txt WORKS (it's 'b' at this point, but
it's the same file)
BAD BEHAVIOR:
cvs co -p -r 1.3 samp/samp/rn3a.txt WORKS (it's actually 'b' at this point)
cvs co -p -r 1.3 samp/samp/rn3b.txt FAILS
cvs co -p -r AFTER_REN samp/samp/rn3b.txt FAILS
Impact on TortoiseCVS:
TCVS Still tries to "view revision" by the current (new) name, so "View":
View rev BEFORE rename: FAILS
View rev AFTER rename: WORKS (actually FAILS for rev 1.3 of the test file)
Diff doesn't work (maybe if I had more revisions AFTER the rename it would work
for those).
>>>>
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p samp/samp/rn3a.txt
cvsntsrv server: cannot find module `samp/samp/rn3a.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p samp/samp/rn3b.txt
===================================================================
Checking out samp/samp/rn3b.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.4
***************
entered to orginal file rn3a.txt
more in a
Added after rename to b
Added more after rename to b
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.1 samp/samp/rn3a.
txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.1
***************
entered to orginal file rn3a.txt
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.2 samp/samp/rn3a.
txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.2
***************
entered to orginal file rn3a.txt
more in a
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.3 samp/samp/rn3a.
txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.3
***************
entered to orginal file rn3a.txt
more in a
Added after rename to b
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.4 samp/samp/rn3a.
txt
cvsntsrv server: cannot find module `samp/samp/rn3a.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.1 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.2 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.3 samp/samp/rn3b.
txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r 1.4 samp/samp/rn3b.
txt
===================================================================
Checking out samp/samp/rn3b.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.4
***************
entered to orginal file rn3a.txt
more in a
Added after rename to b
Added more after rename to b
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r BEFORE_REN samp/sam
p/rn3b.txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r AFTER_REN samp/samp
/rn3b.txt
cvsntsrv server: cannot find module `samp/samp/rn3b.txt' - ignored
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r BEFORE_REN samp/sam
p/rn3a.txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.2
***************
entered to orginal file rn3a.txt
more in a
c:\Users\Glen Starrett\Documents\test\samp\samp>cvs co -p -r AFTER_REN samp/samp
/rn3a.txt
===================================================================
Checking out samp/samp/rn3a.txt
RCS: /myrepo/samp/samp/rn3a.txt,v
VERS: 1.2
***************
entered to orginal file rn3a.txt
more in a
<<<< |
|
2014-03-15 04:00 AEST by Glen Starrett - It is possible to "reset" the rename so that you can get back to the original
filename by directly editing the .directory_history,v and removing references to
the original and renamed versions of the file. HOWEVER, this has NOT been
tested on any file where there is one or more versions of it that were committed
with the "renamed" filename.
|
|
2014-03-15 09:02 AEST by Glen Starrett - Expanding this test out further reveals the behavior is not correct in a much
broader range than I thought before.
It seems that ONLY the exact revision when the rename happened (e.g. version 1.3
in this case, when foo.c became gah.c) is correctly identified and checked out.
Further, as you advance to more recent revisions you can start using foo.c
again to retrieve the file that SHOULD be "gah.c" at this point.
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs log gah.c
RCS file: /myrepo/samp/bar/gah.c,v
Working file: gah.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6; selected revisions: 6
description:
----------------------------
revision 1.6
date: 2014/03/14 21:56:03; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 284853237aed642a; username: Europa\Glen Starrett;
filename: gah.c;
*** empty log message ***
----------------------------
revision 1.5
date: 2014/03/14 21:55:56; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 3fe8532379725f54; username: Europa\Glen Starrett;
filename: gah.c;
*** empty log message ***
----------------------------
revision 1.4
date: 2014/03/14 21:55:51; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 43f4532379725f54; username: Europa\Glen Starrett;
filename: gah.c;
*** empty log message ***
----------------------------
revision 1.3
date: 2014/03/14 21:55:09; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 3d3c532379725f54; username: Europa\Glen Starrett;
filename: gah.c;
*** empty log message ***
----------------------------
revision 1.2
date: 2014/03/14 21:53:11; author: Europa\Glen Starrett; state: Exp; lines: +
1 -0; kopt: kv; commitid: 48b4532379725f54; username: Europa\Glen Starrett;
filename: foo.c;
*** empty log message ***
----------------------------
revision 1.1
date: 2014/03/14 21:52:52; author: Europa\Glen Starrett; state: Exp; kopt: kv
; commitid: a44532379725f54; username: Europa\Glen Starrett; filename: foo.c;
*** empty log message ***
=============================================================================
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.6 -p samp/bar/
gah.c
cvsntsrv server: cannot find module `samp/bar/gah.c' - ignored
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.5 -p samp/bar/
gah.c
cvsntsrv server: cannot find module `samp/bar/gah.c' - ignored
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.4 -p samp/bar/
gah.c
cvsntsrv server: cannot find module `samp/bar/gah.c' - ignored
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.3 -p samp/bar/
gah.c
===================================================================
Checking out samp/bar/gah.c
RCS: /myrepo/samp/bar/foo.c,v
VERS: 1.3
***************
foo
lsjkadlkj
asdjkaa
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.3 -p samp/bar/
foo.c
cvsntsrv server: cannot find module `samp/bar/foo.c' - ignored
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.4 -p samp/bar/
foo.c
===================================================================
Checking out samp/bar/foo.c
RCS: /myrepo/samp/bar/foo.c,v
VERS: 1.4
***************
foo
lsjkadlkj
asdjkaa
alsda
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.5 -p samp/bar/
foo.c
===================================================================
Checking out samp/bar/foo.c
RCS: /myrepo/samp/bar/foo.c,v
VERS: 1.5
***************
foo
lsjkadlkj
asdjkaa
alsda
alsdaaaa
C:\Users\Glen Starrett\Documents\test\europa\samp\bar>cvs co -r 1.6 -p samp/bar/
foo.c
===================================================================
Checking out samp/bar/foo.c
RCS: /myrepo/samp/bar/foo.c,v
VERS: 1.6
***************
foo
lsjkadlkj
asdjkaa
alsda
alsdaaaa
alqqqa |
|
2014-03-20 06:30 AEST by Glen Starrett - Created an attachment (id=2690)
Repro script setup and test strings for checkout -r x.y
This is the script I used to set up a file "c.txt", commit several times,
rename to "c1.txt", and commit several more in order to develop a broader test
case and locate how extensive the problem is with renamed files. |
|
2014-03-20 06:33 AEST by Glen Starrett - Created an attachment (id=2691)
Test notes including matrix of working and non-working combinations
Test notes that use the previously attached setup for "c.txt" -> "c1.txt" with
a matrix of how it "should work" at the bottom of first page to top of 2nd and
how it "actually works" using the referenced repro script starting at the
bottom of page 3. |