How get (erroneous) baselines created by the SVN import wizard?
I have a SVN repository that is structured like the one in the following example:
component
branches
branch1
branch2
tags
branch1
tag1.1
tag1.2
branch2
tag2.1
tag_on_trunk
trunk
other_component
...
Imagine that each of the leaf folders above contains several eclipse projects. Several issues occur when importing that repository into SCM:
component
branches
branch1
branch2
tags
branch1
tag1.1
tag1.2
branch2
tag2.1
tag_on_trunk
trunk
other_component
...
Imagine that each of the leaf folders above contains several eclipse projects. Several issues occur when importing that repository into SCM:
-
The importer creates two baselines for every tag created for trunk instead of one
Thereby the second baseline contains one additional change set that should not be part of the baseline corresponding to the tag.
-
The importer does not correctly recognize the tags on branches. There are two cases:
-
only one tag for a branch
The importer creates a baseline named like the branch instead of the tag
possible solution: rename manually, but one has to recognize that this case occured (checking whether there is only one tag existing or not and it must not be confused with a tag taken for the trunk)
-
more than one tag exists for a branch
The importer creates a single baseline marked as "partial" which has to be extended by additional imports. Each of this imports afford a lot of manual work, including creation of new workspaces with the appropriate component's baseline included and rerunning the wizard.
-
During import process, the wizard shows any tag (tag1) created for a branch (b1) inside the trunk (e.g. "trunk/tag1"), additionally to its proper place at "tags/b1/tag1"
I can ignore these artificial folders, but perhaps this has anything to do with the other issues? - The situation gets stranger when renaming occurs, see this question.
One answer
The SVN importer was written expecting the repository layout of
trunk
folder1
tags
tag1
folder1
tag2
folder1
folder2
branch
branch1
folder1
branch2
folder1
folder2
Your structure differs from that so the importer is being thrown off. The import should work as expected for branches but will not create the baselines you would like for your tags. This difference in structure is also contributing to what you are seeing in point 3. Suffice it to say that the importer relies a bit too heavily on the assumption that the above pattern is used to organize the repository.
trunk
folder1
tags
tag1
folder1
tag2
folder1
folder2
branch
branch1
folder1
branch2
folder1
folder2
Your structure differs from that so the importer is being thrown off. The import should work as expected for branches but will not create the baselines you would like for your tags. This difference in structure is also contributing to what you are seeing in point 3. Suffice it to say that the importer relies a bit too heavily on the assumption that the above pattern is used to organize the repository.
Comments
Steffen Weik
Dec 17 '13, 6:17 a.m.