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

Reply via email to