branch creation uses wrong starting point

Jamma Tino Schwarze <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
Hi there,

I'm preparing migration of a rather large codebase and I came across an
issue. I'll try to summarize it briefly.

Suppose, I've got three branches in CVS (plus HEAD) with the following
anchestry:
HEAD
+- 5_4_branch
...+- 5_4_customer_production_branch
......+- 5_4_customer_test_branch

I'm mapping these to
/c4u/MODULES
/c4u/5.4/MODULES
/customer/old_branches/5_4_customer_production/MODULES
/customer/old_branches/5_4_customer_test/MODULES

I looked into symbol-info.txt and found that all parent-relations are
correctly recognized:
0     5_4_branch            branch     c4u/5.4/MODULES .trunk.
0     5_4_customer_production_branch branch customer/old_branches/5_4_customer_production/MODULES 5_4_branch
0     5_4_customer_test_branch    branch customer/old_branches/5_4_customer_test/MODULES 5_4_customer_production_branch

But it looks like the commit for the creation of
"5_4_customer_test_branch" is wrong. I come to that conclusion since
svnsync-ing the converted repository fails and reports a missing file
right at that commit. The log message also does not make sense:

----
r24870 | cvs2svn | 2009-09-30 10:51:17 +0200 (Wed, 30 Sep 2009) | 2 lines
Changed paths:
   A /customer/old_branches/5_4_customer_test
   A /customer/old_branches/5_4_customer_test/MODULES (from /c4u/MODULES:15273)
[...]
This commit was manufactured by cvs2svn to create branch
'5_4_customer_test_branch'.
----

It looks like it copies the test-branch from trunk instead of it's
parent which has just been correctly created the revision before:
------------------------------------------------------------------------
r24869 | cvs2svn | 2009-09-30 10:51:16 +0200 (Wed, 30 Sep 2009) | 2 lines
Changed paths:
   A /customer/old_branches/5_4_customer_production
   A /customer/old_branches/5_4_customer_production/MODULES (from /c4u/5.4/MODULES:24860)
   D /customer/old_branches/5_4_customer_production/MODULES/c4u_tools 

This commit was manufactured by cvs2svn to create branch
'5_4_customer_production_branch'.
------------------------------------------------------------------------
-> copied correctly from 5_4_branch, removing that one module which does
not have that branch.

I'm a bit lost and suspect a cvs2svn bug (I'm using 2.3.0). Is it worth
to try cvs2svn from trunk?

I was able to reproduce the problem using a clean repository, performing
only the following operations:

- use two random files for testing
- cvs import mymodule
- cvs checkout mymodule
- alter one file, commit
- cvs rtag -b 5_4_branch mymodule
- cvs up -r 5_4_branch
- alter another file, commit
- cvs rtag -b 5_4_branch mymodule
- cvs rtag -r 5_4_branch -b 5_4_customer_production_branch mymodule
- cvs rtag -r 5_4_customer_production_branch -b 5_4_customer_test_branch mymodule

-> both production and test branch are created at the same time, with no
changes inbetween. It looks like cvs2svn uses the CVS-revision number
for determining from where to copy files, but they do not show the
parent-child relationship:
cvs log
    5_4_customer_test_branch:       1.1.1.1.2.1.0.4
    5_4_customer_production_branch: 1.1.1.1.2.1.0.2
    5_4_branch: 1.1.1.1.0.2

Bug? Conversion magic depleted?

Thanks!

Jamma Tino.

-- 
"What we nourish flourishes." - "Was wir nähren erblüht."

www.lichtkreis-chemnitz.de
www.tisc.de

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1670&dsMessageId=2598059

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.