[cvsnt] Re: vendor branch and import problem

John W. Hoey jwh02 at health.state.ny.us
Thu Feb 26 20:20:57 GMT 2004


Hello,
I have been using CVSNT for about 6 months on a very small scale and I love
it. I also appreciate all the support given and the active participation of
so many people.

I have been following this discussion and the resulting confusion.  I did
some testing, re-read the cederqvist manual on this subject and re-read the
original note which lead to the change in the import function. I believe I
understand what is happening and can clear up some confusion ( then again,
I could be totally wrong ). This is my best guess:

There seems to be some confusion between branches and tags. If I understand
correctly, to truly understand which branch you are on you must look at the
third number in the revision 1.1.1 and 1.1.2 are different branches. The
import function always puts files in the 1.1.1 branch ( cederqvist manual -
section on tracking third-party sources. )  When you first run the import
command, the file will become the first revision on the 1.1.1 branch (
1.1.1.1 ). The 'Vendor' name is added as a symbolic tag to the branch (
1.1.1 ) and the 'Release' name is a tag for the latest revision on the
branch ( 1.1.1.1 )

If you import a new version of the file with a different vendor name and
release version, you will get 1.1.1.2 with branch 1.1.1 having two symbolic
tags and 1.1.1.2 having the new release tag.  Since a branch with 2
symbolic tags is not a usual CVS situation, many of the graphing programs
will incorrectly display as having 2 branches with the latest symbolic tag
having all the revisions. In reality there is one branch with two tag
names. I confirmed this by explicitly checking out files for each 'Vendor'
name. In both instances I received the latest revision ( 1.1.1.2).

Below is some testing with CVSNT 2.0.26 as client and server which shows
the above. I imported a directory with only 1 file, imptest.txt. I modified
this file between each import. The log information was obtained using
wincvs

C:\Temp\cvsadmin\import>cvs import -m "version 1" imptest VENDOR_A REL_A
N imptest/imptest.txt
U imptest/test.txt

No conflicts created by this import

Log Info after import:
Rcs file : '/test/imptest/imptest.txt,v'
Working file : 'imptest.txt'
Head revision : 1.1
Branch revision : 1.1.1
Locks : strict
Access :
Symbolic names :
      1.1.1.1 : 'REL_A'
      1.1.1 : 'VENDOR_A'
Keyword substitution : 'kv'
Total revisions : 2
Selected revisions : 2
Description :


----------------------------
Revision : 1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Branches :
      1.1.1
Description :
Initial revision

----------------------------
Revision : 1.1.1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Description :
version 1

===============================================

C:\Temp\cvsadmin\import>cvs import -m "version 2" imptest VENDOR_B REL_B
U imptest/imptest.txt
U imptest/test.txt

No conflicts created by this import

Rcs file : '/test/imptest/imptest.txt,v'
Working file : 'imptest.txt'
Head revision : 1.1
Branch revision : 1.1.1
Locks : strict
Access :
Symbolic names :
      1.1.1.2 : 'REL_B'
      1.1.1 : 'VENDOR_B'
      1.1.1.1 : 'REL_A'
      1.1.1 : 'VENDOR_A'
Keyword substitution : 'kv'
Total revisions : 3
Selected revisions : 3
Description :


----------------------------
Revision : 1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Branches :
      1.1.1
Description :
Initial revision

----------------------------
Revision : 1.1.1.2
Date : 2004/2/26 20:3:18
Author : 'JWH02'
State : 'Exp'
Lines : +1 -1
Keyword : 'kv'
CommitID : '880403e51050000'
Description :
version 2

----------------------------
Revision : 1.1.1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Description :
version 1

===============================================

C:\Temp\cvsadmin\import>cvs import -m "version 3" imptest VENDOR_A REL_C
cvs server: ERROR: tag VENDOR_A already exists in
/test/imptest/imptest.txt,v
cvs server: ERROR: tag VENDOR_A already exists in /test/imptest/test.txt,v
U imptest/test.txt

No conflicts created by this import

( In the above, I received an error because I used the same vendor version
as previous,
however the revision is imported, but without a release tag as shown below
)

Rcs file : '/test/imptest/imptest.txt,v'
Working file : 'imptest.txt'
Head revision : 1.1
Branch revision : 1.1.1
Locks : strict
Access :
Symbolic names :
      1.1.1.2 : 'REL_B'
      1.1.1 : 'VENDOR_B'
      1.1.1.1 : 'REL_A'
      1.1.1 : 'VENDOR_A'
Keyword substitution : 'kv'
Total revisions : 4
Selected revisions : 4
Description :


----------------------------
Revision : 1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Branches :
      1.1.1
Description :
Initial revision

----------------------------
Revision : 1.1.1.3
Date : 2004/2/26 20:6:51
Author : 'JWH02'
State : 'Exp'
Lines : +1 -1
Keyword : 'kv'
CommitID : '790403e51db0000'
Description :
version 3

----------------------------
Revision : 1.1.1.2
Date : 2004/2/26 20:3:18
Author : 'JWH02'
State : 'Exp'
Lines : +1 -1
Keyword : 'kv'
CommitID : '880403e51050000'
Description :
version 2

----------------------------
Revision : 1.1.1.1
Date : 2004/2/26 20:0:6
Author : 'JWH02'
State : 'Exp'
Lines : +0 0
Description :
version 1

===============================================


In summary, if I am correct about what is happening, then I would think the
proper syntax checking for the import command would be that the 'Vendor'
tag must match the previous vendor tag and the 'Release' tag must not match
any previous release tags. If I am not correct, then I hope someone will be
able to explain this.

Thank you,
John Hoey








More information about the cvsnt mailing list