Patching locally against mirror source http://code.bestpractical.com/svk.
==== Patch <-> level 1
Source: [No source]
Target: 4ccb8a5b-8ae0-0310-9b02-86531366991d:/trunk/lib/SVK:2520
        (http://code.bestpractical.com/svk)
Log:

=== Editor/Merge.pm
==================================================================
--- Editor/Merge.pm	(revision 2520)
+++ Editor/Merge.pm	(patch - level 1)
@@ -276,12 +276,15 @@
 	    $self->{info}{$path}{baseinfo} = [$self->_resolve_base($path)];
 	    $self->{info}{$path}{fpool} = $pool;
 	}
+	my $spool = SVN::Pool->new_default($pool);
 	$self->{storage_baton}{$path} =
-	    $self->{storage}->add_file ($path, $self->{storage_baton}{$pdir}, @arg, $pool);
-	$pool->default if $pool && $pool->can ('default');
+	    $self->{storage}->add_file ($path, $self->{storage_baton}{$pdir}, @arg, $spool);
+	# XXX: Why was this here? All tests pass without it.
+	#$pool->default if $pool && $pool->can ('default');
+
 	# XXX: fpool is used for testing if the file is open rather than add,
 	# so use another field to hold it.
-	$self->{info}{$path}{hold_pool} = $pool;
+	$self->{info}{$path}{hold_pool} = $spool;
     }
     return $path;
 }
@@ -752,7 +755,7 @@
     # XXX: prompt for resolution
     return {} if $kind && $kind != $localkind;
 
-    return $self->_merge_file_delete ($path, $rpath, $pdir, $pool) if $localkind == $SVN::Node::file;
+    return $self->_merge_file_delete ($path, $rpath, $pdir, SVN::Pool->new($pool)) if $localkind == $SVN::Node::file;
 
     # TODO: checkouts may have unversioned files/dirs under the dir we are going to delete
     # we still has no interactive resolver for this
@@ -760,8 +763,8 @@
 
     # it's dir...
 
-    my $dirmodified = $self->inspector->dirdelta ($path, $self->{base_root}, $rpath);
-    my $entries = $self->{base_root}->dir_entries ($rpath);
+    my $dirmodified = $self->inspector->dirdelta ($path, $self->{base_root}, $rpath, $pool);
+    my $entries = $self->{base_root}->dir_entries ($rpath, $pool);
 
     my $baton = $self->{storage_baton}{$path} = $self->{storage}->open_directory (
         $path, $self->{storage_baton}{$pdir}, $self->{cb_rev}->($path), $pool
@@ -777,13 +780,13 @@
                 $torm->{$name} = undef;
 	    }
             else {
-                $torm->{$name} = $self->_check_delete_conflict ($cpath, $crpath, $entry->kind, $path, $pool);
+                $torm->{$name} = $self->_check_delete_conflict ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new($pool));
             }
             delete $dirmodified->{$name};
 	}
 	else { # dir or unmodified file
             $torm->{$name} = $self->_check_delete_conflict
-                ($cpath, $crpath, $entry->kind, $path, $pool);
+                ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new($pool));
 	}
     }
 
@@ -791,7 +794,7 @@
         local $self->{tree_conflict} = 1;
         my ($cpath, $crpath) = ("$path/$node", "$rpath/$node");
         my $kind = $self->{base_root}->check_path ($crpath);
-        $torm->{$node} = $self->_check_delete_conflict ($cpath, $crpath, $kind, $path, $pool);
+        $torm->{$node} = $self->_check_delete_conflict ($cpath, $crpath, $kind, $path, SVN::Pool->new($pool));
     }
 
     $self->{storage}->close_directory ($baton, $pool);
=== Inspector/Root.pm
==================================================================
--- Inspector/Root.pm	(revision 2520)
+++ Inspector/Root.pm	(patch - level 1)
@@ -72,6 +72,7 @@
 
 sub exist {
     my ($self, $path, $pool) = @_;
+    $pool = SVN::Pool->new_default($pool);
     $path = $self->_anchor_path($path);
     return $self->root->check_path ($path, $pool);
 }
@@ -79,7 +80,9 @@
 sub localmod {
     my ($self, $path, $checksum, $pool) = @_;
     $path = $self->_anchor_path($path);
-    my $md5 = $self->root->file_md5_checksum ($path, $pool);
+    my $spool = SVN::Pool->new_default($pool);
+    my $md5 = $self->root->file_md5_checksum ($path, $spool);
+    $spool = undef;
     return if $md5 eq $checksum;
     return [$self->root->file_contents ($path, $pool), undef, $md5];
 }
@@ -100,11 +103,11 @@
     for (sort keys %$base_entries) {
 	$spool->clear;
 	my $entry = delete $entries->{$_};
-	next if $base_root->check_path("$base_path/$_") == $SVN::Node::dir;
+	next if $base_root->check_path("$base_path/$_", $spool) == $SVN::Node::dir;
 	if ($entry) {
 	    $modified->{$_} = 'M'
-		if $self->root->file_md5_checksum("$path/$_") ne
-		    $base_root->file_md5_checksum("$base_path/$_");
+		if $self->root->file_md5_checksum("$path/$_", $spool) ne
+		    $base_root->file_md5_checksum("$base_path/$_", $spool);
 	    next;
 	}
 

==== BEGIN SVK PATCH BLOCK ====
Version: svk v2.0.99_01 (linux)

eJyNVM9v3EQUnh44JOLAoddKo+K2QcJde8bjH1sw2wOIFhWlUOhKgNyx5zlr6rVXntmECCPFVZG4
VznBAcSNK0LiECr+JwRnZuzdTSNFbXyxZ973vu/5vU/vg+bBrYnbxrHTWq7Tfvr5R+PxLlfZ7Jo+
WX4LolB1Y7G2hH0oLdqW9Z7ltRWfg44q3uyBimNXJ4dD8vt9wprEMxwpV3UlragnS1QDYLktm/jt
hLQTqlNbVwfrBVRJU9dKixGPBq6OJqamrKwlJCZXgyfM4InlekOCKBrItOCh1hmke7o1RY/2zkFH
7Z1KLvrDmQRqNNlK8xSuIabYno6ui82LEgx40B3dA92Mm4t5X98r+cjA10f5YlEeJgq+UQJKxXsN
StoIiOChB4JlhEUOTx0344ETUJYSlmfcoqFp+scIdf/c7/59bfzkHXQyQr+hxYl9JFH3xl8PO/Tf
5ed7x+jJbvcHOrqLntrdn68fo+5+dxLr26B7fvkY/X6p+3t3fogtuajrEr+LNaceoP624woOEgE5
X5ZqxzLht27J4bW99SaeTqdj/HB2iA+4xGpWSDyDBt7Dt8sSK5BK4gWXEh8UalYvFS7UTZ3V09jx
ihUXOe5v8PXreBXKeIV3bqwAN7SUPFvRqpK38aqibawf8wNQqaYAqX/BklDmdvxtynXfjau+04pF
k6wRO1az4Gq2ojiX/uKXE+9Fpw62GEbo5aEfZGGYcxEEwveABkBy8IJcj9bJs42p2FlTBaf2HH2i
qx9s5b3aVt5LbcVMTalwo8DNRRAGuiYiojDgUc7cUNdGozSzSMAGW/385S/Zle5r9OwR+hV1955N
jw7Q918dT39A1Y/s6EP09NJPX1zAMRez1WaIc8FOB2hGZ8emKYm+T7IZZI/lcq7ntxqffCF7Y+Bl
pcnXwQ0IV7C9tdUDN7Y4h3vn6hA2AiMrubrOP3fKfUcJ9ygNAkeA8CPqhgCRz3yRCYc7NNcdNRvG
LNjWjmPSWoQMu/JBvz7H48+qYh8ayctrfquXqxHWm7aBfX1YLgth9tdINcvq8ags0pHO1QHCiGNR
v/WyLA05S+2Qg2M71HXsKHWIHfqMutT3o8gV/wP/eOsD
==== END SVK PATCH BLOCK ====
