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]].