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:2522
        (http://code.bestpractical.com/svk)
Log:

=== Editor/Merge.pm
==================================================================
--- Editor/Merge.pm	(revision 2522)
+++ Editor/Merge.pm	(patch - level 1)
@@ -251,9 +251,10 @@
     return unless defined $pdir;
     my $pool = pop @arg;
     # a replaced node shouldn't be checked with cb_exist
+    my $spool = SVN::Pool->new_default($pool);
     my $touched = $self->{notify}->node_status($path);
     if (!$self->{added}{$pdir} && !$touched &&
-	(my $kind = $self->inspector->exist($path, $pool))) {
+	(my $kind = $self->inspector->exist($path, $spool))) {
 	unless ($kind == $SVN::Node::file) {
 	    $self->{notify}->flush ($path) ;
 	    return undef;
@@ -278,7 +279,9 @@
 	}
 	$self->{storage_baton}{$path} =
 	    $self->{storage}->add_file ($path, $self->{storage_baton}{$pdir}, @arg, $pool);
-	$pool->default if $pool && $pool->can ('default');
+	# 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;
@@ -740,7 +743,6 @@
 # Note that empty hash means don't delete - conflict.
 sub _check_delete_conflict {
     my ($self, $path, $rpath, $kind, $pdir, $pool) = @_;
-    $pool->default;
 
     my $localkind = $self->inspector->exist ($path, $pool);
 
@@ -753,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_default($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
@@ -778,13 +780,13 @@
                 $torm->{$name} = undef;
 	    }
             else {
-                $torm->{$name} = $self->_check_delete_conflict ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new($pool));
+                $torm->{$name} = $self->_check_delete_conflict ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new_default($pool));
             }
             delete $dirmodified->{$name};
 	}
 	else { # dir or unmodified file
             $torm->{$name} = $self->_check_delete_conflict
-                ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new($pool));
+                ($cpath, $crpath, $entry->kind, $path, SVN::Pool->new_default($pool));
 	}
     }
 
@@ -792,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, SVN::Pool->new($pool));
+        $torm->{$node} = $self->_check_delete_conflict ($cpath, $crpath, $kind, $path, SVN::Pool->new_default($pool));
     }
 
     $self->{storage}->close_directory ($baton, $pool);
@@ -872,8 +874,9 @@
 sub delete_entry {
     my ($self, $path, $revision, $pdir, @arg) = @_;
     no warnings 'uninitialized';
-    my $pool = $arg[-1];
-    $pool->default;
+    my $pool = pop @arg;
+    $pool = SVN::Pool->new_default($pool);
+    push @arg, $pool;
     my ($basepath, $fromrev) = $self->_resolve_base($path);
     $basepath = $path unless defined $basepath;
 
=== Inspector/Root.pm
==================================================================
--- Inspector/Root.pm	(revision 2522)
+++ Inspector/Root.pm	(patch - level 1)
@@ -100,11 +100,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)

eJyNVE1v1TgUNct2Awt2bCwaoJXm8WI7TuxXER4LRoP41FCgiJEiJ3F4gTSJEr92KnnRAIKu2QJS
V7OfRWfFjMRv4Kcws8dx+mAYIZhsEufec8617/H9sdlYnyIdhq52kKtv3706mdwSKpmdMSvH1zLN
VdU4VBdyWxYO0UX10PF0KbakiSrRPJQqDJEBswF82QIWJF7PEQtVla3DLVmkGikdpOnU11Osp8RA
NTLBqpZl1FSVMmLY8wLfRKO+pqSoWhn1WJM8pX0+dpA3ANK8kYkR3DU6g7SlW1DYbO8r2VxfKdva
Lr4AkF6THml+TjcpfbGWjiyKzfJC9smD7vi6NIdxvt6y9X2XDw98NirqutiNlPxVpbJQwmoQrLNE
UOQyGgQ8EyRgHgkkMd8+9zH3E+YQ2nfsBgDd3yvdPxuXnhwHhzfAb6A7eXi5A8+v/XF/7xH4UP95
Dzz1ut8fvAEv7nSHJ/dBl3Vv833w5Fr318198HLcvTu1dwUcXOjeZ21dVQW8AA2t6aH5HoWl3IlS
mYl5oVadPry23q7Azc3NCbw324U7ooVqlrdwJht5EV4qCqhkq1pYi7aFO7maVXMFc3V+eWnFwkfh
ERvMM2j/wLNn4VEoESVcPXeUcG5tffmbhSyW/33XVQ2nxpvry9A8zv/ak02t5+3MIn8YUFPv3x4c
Gj40J44DgiRJGc48hKRLuOCMYRG4LKOZJz7ZhX5pl+Cz8cY/G7cPhvG+bxjvm4ahtqYU8QBlacCC
IEhxylkgeEYR643D48TsJBgMc/DLgTpxC7yiYB+Ur+jeT+DZsdcPzKZt/xfvNVjK5aUle4axMPX0
13MU9huJtlIaJTOZPG7nW6unh3At1GzsRKcX+K+enq0Uxdx1sctTTjKPZCzFCXYzxoh048AVnr2T
/UjSozDE2sF4mC4bduBMJnfKfFs2rSjO+NqMo17YzKZGbpvFfJ6n/Y0fq2ZePh4XeTw2WBPAFGOH
+NpLkpgJGo+YkO7IJcgd8djFI+ZTgojvc47Sjz5kp7A=
==== END SVK PATCH BLOCK ====
