Thanks for the output. Stephen pointed me into the correct direction.
The problem is a delete/share cycle.
I was now able to write a test scenario for this and attached is a patch
that will solve this problem. Could you please try it out?
Best regards
Dirk
Index: Vss2Svn/ActionHandler.pm
===================================================================
--- Vss2Svn/ActionHandler.pm (revision 291)
+++ Vss2Svn/ActionHandler.pm (working copy)
@@ -575,7 +575,7 @@
# recover this item within the current parent
my $parentinfo = $physinfo->{parents}->{$row->{parentphys}};
- if (undef $parentinfo->{deleted}) {
+ if (!defined $parentinfo->{deleted}) {
$self->{errmsg} .= "Attempt to recover an active item '$physname':\n"
. "$self->{physname_seen}\n";
@@ -1134,6 +1134,7 @@
my $parent = $physinfo->{parents}->{$parentphys};
if (defined $parent &&
# $parentphys ne '99999999' &&
+ !defined $parent->{deleted} &&
$parent->{versions}->[$version]) {
return $parent->{versions}->[$version];
}
@@ -1147,6 +1148,7 @@
$parent = $physinfo->{parents}->{$parentphys};
if (defined $parent &&
# $parentphys ne '99999999' &&
+ !defined $parent->{deleted} &&
$parent->{versions}->[$version]) {
return $parent->{versions}->[$version];
}
@@ -1167,8 +1169,15 @@
my $physinfo = $gPhysInfo{$physname};
if (defined $physinfo) {
- $physinfo->{parents}->{$parentphys} = {};
- push @{ $physinfo->{order} }, $parentphys;
+ # check wether this parent was previously deleted
+ if (defined $physinfo->{parents}->{$parentphys} &&
+ defined $physinfo->{parents}->{$parentphys}->{deleted}) {
+ undef $physinfo->{parents}->{$parentphys}->{deleted};
+ }
+ else {
+ $physinfo->{parents}->{$parentphys} = {};
+ push @{ $physinfo->{order} }, $parentphys;
+ }
}
} # End _add_parent
_______________________________________________
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