Dirk wrote:
Hello Tom,
I have the same problem, and I was looking for a fix a long time also.
Possibly there is an easy fix, if you look here (1). This is the full
path name lookup code. It will recurse down all parents until we reach
the root node and then we assign the root folder name "/". Possibly it
is sufficient to set this to "/trunk/".
That might cause problems for labels, e.g. you might end up with
/trunk/labels.
Later (2), when the Labels are handled, we have a little problem. Now
the label directory is /Labels/ but all pathes are encoded as /trunk/...
So we will end up with /Labels/label/trunk/... Not perfect either, but
a possible solution...
Better than the current situation.
We could naturally remove the "label base" from the path, with the
"label base" beeing the directory where we assigned the label. But this
would brake "Label promotion". How would we handle a situation, when a
label is assigned to some path. Later the same label is assigned to a
file within the path. In the current situation the labels directory is a
hierarchical mirror of the trunk. It is not depending on the place where
you assigned the label. It will always mirror the complete structure.
I will give it a try.
Best regards
Dirk
[1]
http://www.pumacode.org/projects/vss2svn/browser/trunk/script/Vss2Svn/ActionHandler.pm#L717
[2]
http://www.pumacode.org/projects/vss2svn/browser/trunk/script/Vss2Svn/Dumpfile.pm#L548
I found a fix that was very simple, but clearly just a hack:
Index: script/Vss2Svn/Dumpfile/Node.pm
===================================================================
--- script/Vss2Svn/Dumpfile/Node.pm (revision 272)
+++ script/Vss2Svn/Dumpfile/Node.pm (working copy)
@@ -78,6 +78,9 @@
if ($header =~ m/-path$/) {
$value =~ s:^/::;
$value =~ s:/$::;
+ if ($value !~ m/^labels/) {
+ $value = "trunk/$value";
+ }
}
$headers .= "$header: $value\n";
Before you run it, set your clock back in time to prior to the creation
of your VSS repository, create the SVN repository, and then manually
create the trunk directory (and the labels one too, if you like). Then
run the modified script. With this approach, you end up with exactly the
desired structure, and it seemed to work perfectly on a large, 5 years
running VSS repository, though I haven't tested it extensively. If and
or when we move to SVN, I'll have to do some proper testing to confirm
that the labels match (we don't use label promotion or pinning - the
hoops VSS makes you jump through to handle branching is one of the
reasons we want to move away from it - we've been avoiding all
branching, to the detriment of our software process).
Tom
_______________________________________________
vss2svn-users mailing list
Project homepage:
http://www.pumacode.org/projects/vss2svn/
Subscribe/Unsubscribe/Admin:
http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org
Mailing list web interface (with searchable archives):
http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user