Patching locally against mirror source http://code.bestpractical.com/svk.
==== Patch <-> level 1
Source: [No source]
Target: 4ccb8a5b-8ae0-0310-9b02-86531366991d:/trunk:2525
        (http://code.bestpractical.com/svk)
Log:
Fix TODO test: 'log -rHEAD copath' should ignore BASE.

CHANGE OF BEHAVIOUR: 'svk log -r{DATE}' works from HEAD, not BASE.
=== lib/SVK/Command/Log.pm
==================================================================
--- lib/SVK/Command/Log.pm	(revision 2525)
+++ lib/SVK/Command/Log.pm	(patch - level 1)
@@ -124,6 +124,8 @@
     }
     $target = $target->as_depotpath($self->find_base_rev($target))
 	if $target->isa('SVK::Path::Checkout');
+    $target = $target->seek_to($torev) if $torev > $target->revision;
+
     $fromrev = $target->revision unless defined $fromrev;
     $torev = 0 unless defined $torev;
     $self->{cross} ||= 0;
=== t/37revspec.t
==================================================================
--- t/37revspec.t	(revision 2525)
+++ t/37revspec.t	(patch - level 1)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 use strict;
 use SVK::Test;
-plan tests => 14;
+plan tests => 20;
 
 our $output;
 my ($xd, $svk) = build_test('test');
@@ -29,10 +29,7 @@
 
 $svk->cp('//A/foo','//A/foo-cp2','-m','cp issued directly to depotpath');
 is_output_like($svk,'log',['-r','-1'],qr|cp and ps|);
-TODO: {
-local $TODO = 'ignore base limit when HEAD is specified';
 is_output_like($svk,'log',['-r','HEAD'],qr|cp issued directly to depotpath|);
-}
 is_output_like($svk,'log',['-r','HEAD','//A'],qr|cp issued directly to depotpath|);
 is_output_like($svk,'log',['-r','BASE'],qr|cp and ps|);
 
@@ -47,4 +44,24 @@
 #  -- because we can't let this test runs for days.
 $date = sprintf('%04d-%02d-%02d',$y+2000,1,1);
 
-is_output_like($svk,'log',['-r',"{$date}"],qr|cp and ps|);
+is_output_like($svk,'log',['-r',"{$date}"],qr|cp issued directly to depotpath|);
+
+overwrite_file ("A/foo", "foobar\nfnord\nbadline");
+$svk->commit ('-m', 'ill-fated change');
+$svk->up;
+
+$svk->rm ('-m', 'remove foo', '//A/foo');
+$svk->cp ('-m', 'foo-cp2 to foo', '//A/foo-cp2', '//A/foo');
+
+is_output_like($svk,'log',['-xr1','A/foo'],qr|init|);
+is_output_like($svk,'log',['-xr4','A/foo'],qr|ill-fated|);
+TODO: {
+local $TODO = "A/foo\@BASE is not an ancestor of A/foo\@6";
+# seek_to doesn't know how to move forward.
+is_output($svk,'log',['-xr6','A/foo'],[]);
+}
+
+$svk->up;
+is_output_like($svk,'log',['-xr1','A/foo'],qr|init|);
+is_output($svk,'log',['-xr4','A/foo'],[]);
+is_output_like($svk,'log',['-xr6','A/foo'],qr|foo-cp2 to foo|);

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

eJylVctu3DYUnfV0kU2BAkUWrKNADjqy3q8xrM4kHtdF27honGzsYEBRlC2MRlQojh+IAniTouim
m35BvqKr/kh+ppeUx68ankUNDEyK955zeF/c4fubI7tNEqvVbKt99ebH4fAXLMjxU9hpQUuzQjCu
+W1JT2ipuW3JjjSvrfCcwqnA/IiKJLHBOeqcJ8phCeJJjBQLVjVarMCmglOq2W04itqR045ccG1t
OGQ1raacMQFkjucHPpxOpSZSsoZOpS8Yj3xp72i21zlkBacECM+ltCJVWEt/ZRrcY2q34pahK4n8
S6KbZrZUqGDce2BCyWjCrZWilWDOFZh3nyZ/iWa+YPM5rjLFuhLVvUL1l0HMi5JqjnMXz/yJHW3U
c8W/EtbrYNUpruvyfCromchoKbCicp02dVMndG3LCS0rs3KCSYx9x88zN4rCnDhaFEJJvOz1Pn/5
+eCLce/Td72Lce/vg09xVzZoC2ndykgaSmdTwdY1oKcnz1CRo26Jkmsj2BZNwarN/si7WRrqvpei
4pxaHslxjGPHSfMsdrMMu5bnEg/+SHgVrfBWtGy3FaYbAkNTU7IhVOGsDFLwYJBCqccPcGb7eUpD
CmA4CqhLSZanXkzTGEeRFnlxF6U/t/76+tFvwT+933eTi597Hx//8dXFx2+ffGMuGm6mRWXWlJfI
OO0vGooawQsiNtVatd0+bWBbl7hCApYN2kqQYxXNlC1EvRDTspjRda05mQ106GB9cKAbXB/ou5Px
tv528I63pEZF0yxohrobludIMJTRmokai+P22eaK436fnVB+ygvRZQStr43NnLG1AVqDfynmh1Ve
MZ4dVinOyqKia+AkJRkJgQotBFrXjbk+QHpRlkaOBZCRY1wdUf3KcFEDT7fk8yt7TufAjYBF7kxT
8V47wdWWlvDdILUjtd+2ll/vOPcfjN4ZtyF+nbEKYFEVQoZhhZd3x2t5Vem6v7e9N0Tv+yUjuESa
3EKTdGE8HD0fv5pAjlDFBII044pAohlHLEeXFsHaZv8JuuwllDHaVLpAs4qdomP4wbfLOPFTzLON
a6n/URncUHnwFqR96N/IwP8MzIMxUWwrCILbBLeTKqnunQ+qHzHx7dSJA9uxceRmQURyLw3TyHJp
Tnw3V++CDcNzpzhDKgGynYZIsiODy35BhMmS11FzzBZlhoojqGqKZHo2+v0Xu+OX30/Q3g56Ptkd
v/lh7/Wv4A0XQB3C++3x/uSDjk4ZnzUo52yOJOhApVVhgAQjSZxWjvCut9X8Gw5fVwV0WIPLp0EL
b7AUAa8ezCzYLBZFBk+tKfiimsHegUmsuUHrEZJG2E+NCFPLsGBcG3FqOUYU+K7tBkEc29m/UoaR
qA==
==== END SVK PATCH BLOCK ====
