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)
@@ -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;
@@ -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_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
@@ -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_default($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_default($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_default($pool));
     }
 
     $self->{storage}->close_directory ($baton, $pool);
@@ -871,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 2520)
+++ 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)

eJydVE1v3EQYNsdEHDjkwHHUTtuNhLvz4Vl7NqpZhIooH1XaBpoKJGtsj7umXtuyZxMiBimGCnHu
tY2UE/8gqIeC+A/8FIS4djzebalUpQhf7PH7Ps/zzjvPvB81ezszrMMQaYiRvvPlp9PprlDJ/JJZ
wYmWaa6qBjJdyANZQKqL6j70dCkW0kSVaO5LFYbYgIMBfN0C1iRezxELVZUt5JYsUo2UEGs2m+gZ
0TNqoBqbYFXLMmqqShkx4lEfm2jU15QUVSujHmuSZ6zPJxB7AyDNG5kYwSOjM0hbujWFzfZek831
jbKt7eIVAO012UrzZbpJ6Yu1dHRdbJYXsk8edMefS9OMq/XC1vdGPjLw2aio6+IoUvJblcpCCatB
ieaSpCLwZMoSwjgSMcKJ8JFPWUxYlgjoBdw0/abjdH/d6v7e+/DHd52zm84vTrd1dr1zfvrs13vH
3zj/wN/unjg/7HZnzvEnzkO3e/r2idPd6p6F5q/f/b514jwadX/sHt9wTq91f261dVUV4BowxOYU
zbcblvIwSmUmloUawT68vdNeBPv7+1Nwd34EDkUL1DxvwVw28n3wQVEAJVvVglq0LTjM1bxaKpCr
q5sbFy3cDVdsIM+A/QMuXwarUCJKMLqySriyvbN5biHvgVVBm8A8iyMAZamaXLZmB7CVReaG38XC
9L531vdGOG+idcYINrVQ8xXFuTL/P1hXNZiZazIUCP9Tc21qvWznFrmqb+b9+zoM3ht8Esc+xZKm
Ack8jCWiXPAgIMYqQcYyT7xwLnvVuf7LOzC+bdozeNd7s3e9c73LbE0p5j7OUj/wfT8lKQ98wTOG
A+pLyuPE7MQfvHv69al6Z9d5zJyfnfIxO/7YefjWk6/Mpq0R1+9tUMrNjQ3bwxfn6Yb9RqJFyqJk
LpMH7XIxujCE+4Mdw+jCGv/a7tlKccwRIoinnGYezYKUJARlQUAlin0kPDse+umo3TAkGhIyDLo9
O/um0y/K/EA2rSguTbSZjL2wGZONPDCL5TJP++EzVs2yfDAu8nhssCZAGEGQTrSXJHEgWOwGQiIX
UYxcHiPiBhNGMZ1MOMfpcw1R1Xo=
==== END SVK PATCH BLOCK ====
